Java核心技术卷(一)第四章对象与类

第四章对象与类笔记

4.4.3静态方法

静态方法是一种不能向对象实施操作的方法。
静态方法不能访问实例域,因为它不能操纵对象,但是静态方法可以访问自身类中的静态域。
静态方法可以直接通过类名调用静态方法
例:

public static int getNextId()
{
	return nextId;
} 
int n=Employee.getNextId();

建议使用类名调用静态方法
使用静态方法的情况:
一个方法不需要访问对象状态,其所需参数都是通过显示参数提供的;
一个方法只需要访问类的静态域;

4.4.4工厂方法

使用静态工厂方法来构造对象。
为什么不用构造器完成生成不同的格式化对象呢?
无法命名构造器;因为类名必须与构造器名字相同,但是这里希望采用不同的名字;
当使用构造器时无法改变所构造的对象类型;

4.4.5 main方法
4.6 对象构造
4.6.1 重载

重载就是如果多个方法有相同的名字,不同的参数,便产生了重载;
Java允许重载任何方法,不只是构造器方法;
方法名相同,参数类型相同,参数个数相同,但是返回值类型不同不构成重载;

4.6.2 默认初始化域

如果在构造器没有显式的给域赋初值那么自动会被赋为默认值;
布尔值默认值为false,对象引用为null,数值为0;

4.6.3 无参数的构造器

对象由无参构造器创建时,会设置一个适当的默认值;
如果在编写一个类时没有编写构造器,那么,系统会提供一个无参构造器;这个构造器实例域被设置为默认值;;
如果一个类中提供了至少一个构造器,但是没有提供无参构造器,那么,如果在构建对象时如果没有提供参数,则认为不合法!
如果已经由一个有参构造器,又想使用无参构造器,那么就在提供一个不带参的默认构造器;
当然如果需要所有域都赋为默认值,可以采用以下格式:

public ClassName(){}
4.6.4 显示域初始化(看着重要,以后有用)
4.6.5 参数名

this.name=name
this是对象 点(.)是”的“,name是实例域属性 第二个name是参数
this指示隐式参数,也就是所构造的对象

4.6.6 调用另一个构造器

this(参数列表),放在第一行

4.6.7 初始化块

前两种初始化数据域的方法:1.在构造器中设置值 2.在声明中赋值
第三种初始化数据域的方法:初始化块(不常见)
无论使用那个构造器构造对象,id域都在对象初始化块中被初始化;

id域
{
	id=nextId;
	nextId++;
}

静态代码块:在类的第一次加载时,会进行进行静态域的初始化

你可能感兴趣的:(Java基础,核心技术卷一阅读)