2. 类与对象

面向对象:

 类成员:

类修饰符:

注解,public(没有修饰符,类只能在所在包中访问类),abstract,final,严格浮点 strictfp,

字段修饰符:

注解,访问控制符,static,final,transient(对象序列化有关),volatile(同步和内存模型有关)

字段默认初始化

final 修饰字段:一般定义类或者对象的持久属性,这个属性不随着类或者对象的生命周期而变化

要么声明时候初始化

要么类的对象构造时候初始化(对非static的final字段)

 访问控制:private,package,protected,public

本类,本包,本子类,所有包

new 来创建对象: Body body = new Body(); 

 构造器:就是为了合理的初始化状态

非public的构造器限制在本包中可以访问

默认构造器

复制构造器(很多类支持,StringBuilder类。。。)(更好方法使用 clone)

初始化块:字段另一种更复杂的初始化方式

 static字段可以有初始化式,也可以有静态初始化块。

 

方法修饰符:加上 synchronized,native

 静态方法:类方法

 方法调用:参数列表中参数可以隐式转换(byte自动到int,int到Integer)

 引元数量可变的方法:String... messages

 方法结束:执行return语句,到达方法结尾,抛出未捕获的异常

返回结果不止一个:对象或者数组实现

参数都是值副本的传递

使用方法来控制访问(getter和setter方法)

方法的重载(过多的重载会影响可读性)

很多次的使用某个Math.ext() 时候,可以导入静态成员名: import static java.lang.Math.ext; 下次使用直接写 ext() 来使用

main方法: 可以输入命令,java Hello haha "hehe hihi" 

 本地方法 native method

 1 package wzy.chapter2;
 2 
 3 public class Body {
 4     public long idNum;
 5     public String name;
 6     public Body orbits;
 7 
 8     // 无论创建多少个实例,字段的副本只有一个
 9     public static long nextID = 0;
10 
11     Body(String bodyName, Body orbitsAround) {
12         // 一个构造器通过 this 来调用另一个构造器
13         this();
14         name = bodyName;
15         orbits = orbitsAround;
16     }
17 
18     Body(){
19 
20     }
21     // 复制构造器
22     Body(Body other){
23         idNum = other.idNum;
24         name = other.name;
25         orbits = other.orbits;
26     }
27 
28     // 初始化块:字段另一种更复杂的初始化方式
29     {
30         idNum = nextID++;
31     }
32 }

猜你喜欢

转载自www.cnblogs.com/hubertoo/p/9066983.html