java核心技术10阅读(二)-面向对象编程2

静态域Static

静态域被称为类域,它属于这个类,而不属于某个实例对象,是这个类所有实例的公有对象。

静态域常量以static+final来命名,它能作为实例对象的公有方法或者常量但是不能被修改,例如Math.PI。

静态域方法是不能用实例域对象但能调用静态变量的方法,以static为前缀。其实相当于静态方法没有隐式参数。例如Math.pow(x, y)。也可以将静态域的前缀省略而最好利用类名直接调用。

在下面2种情况下使用静态域方法:
•一方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如: Math.pow)
•一个方法只需要访问类的静态域(例如:Employee.getNextld)

利用静态工厂方法来生成不同风格的对象。

最常见的静态方法当然是main函数,每个类都可以包含一个main函数,可以用来测试不同的类做自测。

方法参数

java的参数总是按值调用,对象引用也是即使按值传递,传递的是指针的复制值。因此不能说java/javascript的对象引用时引用调用。C++ 有值调用和引用调用。引用参数标有& 符号

对象构造

重载是多个重名的方法但是带有不同的参数类型。方法的前面包括名字和参数类型

三种初始化数据域方法:
0:默认域初始化,假设没有对域初始化,则域内的数值、bool以及对象会被初始化成0\false\null。**tips:**利用重载可以提供一个无参数构造器,满足一些默认条件

1:显示域初始化,可以直接给显示域赋值,赋值可以是个常量或者调用方法,这样可以很方便让所有的对象得到相类似的值。而不用进行传参来初始化。采用隐式参数this()的方式来调用另一个构造器。

2:初始化块,加{}来运行公共域部分,该部分先运行,然后才运行构造器的主体部分。(不常见)

初始化数据执行顺序
由于初始化数据域有多种途径, 所以列出构造过程的所有路径可能相当混乱。下面是调
用构造器的具体处理步骤:
1 ) 所有数据域被初始化为默认值(0、false 或null)。
2 ) 按照在类声明中出现的次序, 依次执行所有域初始化语句和初始化块(包括可以标记静态数据域)。
3 ) 如果构造器第一行调用了第二个构造器, 则执行第二个构造器主体
4 ) 执行这个构造器的主体.

java因为有自动回收机制,不存在析构,但是对于一些需要回收的对象,可以利用finalize犯法进行释放,但是这个方法由于调用顺序问题,在实际中使用并不多。

一个类可以使用所属包中的所有类, 以及其他包中的公有类( public class)。
当包中两个类重名时,需要导入一个确切的类来避免编译错误

包的结构是一个嵌套的结构,包的命名方式方式采用与文件结构对应的方式调用,即包和目录需要匹配,例如
javac com/myconipany/ Payrol1App.java
java com.mycompany.PayrollApp
其次包中定位类是编译器( compiler) 的工作。

如果未定义包,所有的包在default package中。 定义包的方式包括package xxxx

java中需要有一个基本目录(source root),这份目录是javac编译的起始目录,可以用来调用java的各种包等等。而自己定义的包需要放在基本录下调用,因为默认基本目录为调用的起始路径。

包中的类、方法或者变量若没有加public 、private声明,会变成公有类、公有变量,公有变量会破坏包的封装性,导致结果被篡改。包密封( package sealing) 机制可以改善这个问题。

类路径

类文件要可以放在jar文件中,出了基目录外。类路径是指所有的类的集合。例如
/home/user/dassdir: .:/home/aser/archi ves/。指当前目录和jar目录

编译器javac会从所有的import命令的包中搜寻类

注释

1.注释插入 /** xxxx*/,注释信息之前
2.类注释/** xxxx*/,类之前
3.方法注释,可以用@param @return 来表示
4,通用注释 @author @see 一定要使用井号(#),而不要使用句号(.)分隔类名与方法名

根据上述注释,javadoc 自动生成注释以及包的各种方法链接

类设计技巧

1.类名和方法名功能化
2.实例域私有化保持封装性
3.尽量保持对象域不可变,不可变类
4.域都初始化,不试用默认值
5.不要过的使用基本数据类型,学会用类代替
5.类之间职责明确,避免耦合
7.不是所有域都需要变更器和访问器

发布了15 篇原创文章 · 获赞 1 · 访问量 136

猜你喜欢

转载自blog.csdn.net/qq_17236715/article/details/103656539