20145127《java程序设计》第三周学习总结
教材学习内容总结
第四章 认识对象
4.1 类与对象
0、Java中有基本类型和类类型两个类型系统。本章主要讲的是类类型。java编写几乎都要使用对象,要产生对象必须先定义类。类是对象的设计图,对象是类的实例。
1、定义类:生活中描述事物无非是描述事物的属性和行为。Java中用类class来描述事物也是如此。
属性:对应类中的成员变量
行为:对应类中的成员函数
定义类其实在定义类中的成员(成员变量和成员函数)
class Clothes
{
String color;
char size;
}
public class Field
{
public static voidmain(String[] args){
Clothes sun = new Clothes();
Clothes spring = new Clothes();
sun.color = "red";
sun.size = 'S';
spring.color = "green";
spring.size = 'N';
System.out.printf("sun (%s, %c)%n", sun.color, sun.size);
System.out.printf("spring (%s, %c)%n", spring.color, spring.size);
}
}
执行结果:
sun (red, S)
spring (green, N)
构造函数是与类名称同名的方法,其中,由于参数与数据类型重名,需使用this将参数值指定给参数。
class Clothes2
{
String color;
char size;
Clothes2(String color, char size)
{
this.color = color;
this.size = size;
}
}
public class Field2
{
public static void main(String[] args)
{
Clothes2 sun = new Clothes2("red", 'S');
Clothes2 size = new Clothes2("green", 'N');
System.out.printf("sun (%s, %c)%n", sun.color, sun.size);
System.out.printf("spring (%s, %c)%n", spring.color, spring.size);
}
}
执行结果:
sun (red, S)
spring (green, N)
2、使用标准类。Java SE 提供了标准API,这些API就是由许多类组成的。java.util.Scanner和java.math.BigDecimal就是两个基本的标准类。
使用java.util.Scanner
import java.util.Scanner;
public class Guess
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int number = (int) (Math.random() * 10);
int guess;
do{
System.out.print("GUESS A NUMBER:");
guess = scanner.nextInt();
}
while(guess != number);
System.out.printIn("YOU ARE RIGHT!");
}
}
执行结果:
GUESS A NUMBER:6
GUESS A NUMBER:2
GUESS A NUMBER:7
GUESS A NUMBER:5
GUESS A NUMBER:1
GUESS A NUMBER:9
GUESS A NUMBER:8
GUESS A NUMBER:3
GUESS A NUMBER:4
YOU ARE RINGT!
使用java.math.BigDecimal
import java.math.BigDecimal
public class DecimalDemo
{
public static void main(String[] args)
{
BigDecimal operand1 = newBigDecimal("1.0");
BigDecimal operand2 = newBigDecimal("0.8");
BigDecimal result = operand1.subtract(operand2);
System.out.printIn(result);
}
}
执行结果:0.2
4.2 基本类型打包器
1、打包基本类型:基本类型long、int、double、float、boolean等。
2、自动装箱、拆箱。
自动装箱方法:
int i = 10;
Integer wrapper = i;
可以用Number类自动装箱。
自动拆箱:即自动取出打包器中的基本形态信息。
Integer wrapper = 10; //自动装箱
int foo = wrapper; //自动拆箱
4.3 数组对象
1、数组基础
2、操作数组对象
3、数组复制
4.4 字符串对象
1、字符串基础:又字符组成的文字符号成为字符串。
2、字符串特性:
字符串常量和字符串池:用“”写下的字符串称为字符串常量。
不可变动字符串:在java中,字符串对象一旦建立,就无法更改对象中任何内容,对象上没有任何方法可以更改字符串内容。可以使用+连接字符串 ,改用StringBuilder来改善。
4.5 查询API文档
学习java要学会使用Java API,在Windows下一定要下载CHM格式的Java API,这个版本具有检索功能,使用非常方便。
第五章 对象封装
5.1 封装
封装实际上是使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当做黑箱进行操作。
1、通过构造方法(构造函数)封装初始化流程。
class Cashcard
{
String number;
int balance;
int bonus;
CashCard(String number, int balance, int bonus)
{
this.number = number;
this.balance = balance;
this.bonus = bonus;
}
}
public class CardApp
{
public static void main(String[] args)
{
CashCard[] cards={
new CashCard("A001",500,0),
new CashCard("A002",300,0),
new CashCard("A003",1000,1),
new CashCard("A004",2000,2),
new CashCard("A001",3000,3),
};
for(CashCard card:cards)
{
System.out.printf("(%s,%d,%d)%n",card.number,card.balance,card.bonus);
}
}
}
3、通过成员变量封装数据
private关键词:是一个权限修饰符。用于修饰成员(成员变量和成员函数)。被私有化的成员只在本类中有效。
功能:将成员变量私有化,对外提供对应的set,get方法对其进行访问。可提供对数据访问的安全性。
5.2 类语法细节
1、public权限修饰
如果没有声明权限修饰的成员,只有在相同包的类程序代码下才可以直接存取,也就是“包范围权限”。如果想在其他包的类程序代码中存取某包的类或对象成员必须是公开成员,在java中要使用public加以声明。
2、关于构造函数
特点:函数名与类名相同;
不用定义反回值类型;
不可以写return语句。
作用:给对象进行初始化。
注意:默认构造函数的特点。
多个构造函数多个构造函数是以重载的形式存在的。
3、this关键词
特点:this代表其所在函数所属对象的引用。换言之:this代表类对象的引用。
当在函数内需要用到调用该函数的对象时,用this。
class Other{
{
System.out.printIn("对象初始区块");
}
other()
{
System.out.printIn("Other() 构造函数");
}
Other(int o )
{
this()
System.out.printIn(“Other(int o )构造函数”);
}
}
public class
ObjectInitialBlock
{
public static viod main(String[] args)
{
new Other(1);
}
}
执行结果:
对象初始区块
Othere<> 构造函数
Othere 构造函数
4、static关键词
用于修饰成员(成员变量和成员函数)
被修饰后的成员具有以下特点:随着类的加载而加载;
优先于对象存在;
被所有对象所共享;
可以直接被类名调用。
使用注意:静态方法只能访问静态成员;
静态方法中不可以写this,super关键词;
主函数是静态的。
import java.util.Scanner;
import static java.lang.System.in;
import static java.lang.System.out;
public class ImportStatic
{
public static void main(String[] args)
{
Scannere scanner = new Scanner(in);
out.print("请输入姓名:");
out.pringtf("%s 你好!%n",scanner.nextLinr());
}
}
执行结果:
请输入姓名: Any
Any 你好!
教材学习中的问题和解决过程
本周的学习内容说实话有点多,光是看书并不能都看懂弄会,许多地方都询问了同学。总的来说我还需要多多练习。
代码调试中的问题和解决过程
在第五章中对于构造方法(构造函数)封装初始化的内容没有搞懂,代码也是想同学进行了询问才勉强完成。
其他(感悟、思考等)
通过第三周的java学习,我对于教学内容越来越熟悉了,也明白了对于java学习的基本方法,对代码的编程越来越多也越来越熟练了,当然还有诸多不足需要我去补足。同时我将下周开始将代码托管,目前还没有托管成功。
参考资料
Java学习笔记(第8版)
《Java学习笔记(第8版)》学习指导
20145127《java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- python数据结构之树(概述)
树 在计算机科学中,树是分层结构的抽象模型 .本篇学习笔记记录树的内容如下: 树的基本功能:定义.术语.ADT 树的遍历方法:前序.中序.后序 树的定义 第一种:树由一组节点和一组连接节点的边组成.树 ...
- SVN里直接把本地目录纳入管理
如果本地有个已有的目录,要直接纳入SVN管理,怎么办呢?直接在Repository Browser里面 Add folder,但这样虽然把目录加到SVN,但本地目录没有纳入管理,你还要重新又下到本地才 ...
- Ubuntu16.04 搜狗输入法输入汉字时候选栏是一串字符数字乱码问题解决方法
https://blog.csdn.net/liudahanghang/article/details/80494851 1. 如果是刚装完搜狗输入法,则输入命令:sudo apt-get insta ...
- Python第三方库官网
Python第三方库官网 https://pypi.python.org/pypi 包下载后的处理: 下载后放到Python的scripts文件夹中(D:\Python3.5\Scripts),用cm ...
- mysql 权限管理 revoke 回收权限 命令
回收所有库,所有表的所有权限 revoke all on *.* from 针对mike的账号 回收 所有库,所有表的select权限 mysql> revoke select on *.* f ...
- 008-jdk1.7版本新特性
一.JDK1.7 名称:Dolphin(海豚) 发布日期:2011-07-28 新特性: 1.1.switch-case中可以使用字串 区分大小写.Java编译器通过switch使用String对象的 ...
- 超级详细的RedGateSqlServer工具教程,效率提高的不止一点点之SQLPrompt
距离上次SQLDoc教程贴过去2个月了,时间真快,好了,废话不多说,继续 http://pan.baidu.com/share/link?shareid=177401896&uk=330822 ...
- Lodash入门介绍
原文额地址 http://www.w3cplus.com/javascript/lodash-intro.html 有多年开发经验的工程师,往往都会有自己的一套工具库,称为 utils.helper ...
- idea 使用方法
1:设置自定义自动补全,使用$END$代表最后光标所在的位置. http://blog.csdn.net/u012569796/article/details/54694418 2:使用 shift+ ...
- shell脚本变量$#,$*,$$,$@,$0,$1,$2,$?的含义
本文转录:https://blog.csdn.net/kejiaming/article/details/51859503 参数说明: $# 是传给脚本的参数个数 $ 是脚本本身的名字 $ 是传递给该 ...