JAVA SE自学 基础篇 封装(三)
- static是什么
- 构造器(constructor)
- 方法重载(overload)
- Getter and Setter
- 内部类(Inner Class)
目标
- static关键字
- 构造器
- geter and setter
- 方法构造
- 内部类
static是什么
static ,静态的
类的静态成员(属性/方法)是依赖于类存在的,它们不会在实例中储存副本,(也就是当你new出对象时,他不出储存在对象中,而是属于类,有一个地址值存在于对象中指向该属性),这种静态成员也称为类成员(类属性,类方法)
类中的非静态成员 是依赖示例存在的,他们在事例中各有各的值(副本).这种成员也成为实例成员
访问实例成员必须用实例:
obj.实例成员
访问静态成员建议坚持用类名:People.nationlity
注意事项:
- 也可以实例化对象来访问静态成员
- 静态方法中可以直接访问静态成员
- 静态方法中不可以直接访问实例成员
static还可以用作静态代码块 :
构造器(constructor)
- 构造器是方法的一种, 也称为构造函数, 构造方法.
- 构造器的作用是对象初始化.
- 构造器只有在new的时候才会被调用.
- 如果没有手写构造器, 类有一个默认的无参构造器, 也称为隐式构造器.
- 一个类可以有多个构造器, 这样为使用者创建实例时提供更灵活的选择.
- 构造器有两个特征:
- 与类同名
- 无返回类型的声明
注意
: 构造器之间可以互相单向调用,但是只能放在第一句!
方法重载(overload)
方法重载,就是两个同名的方法,根基参数类型或者个数的额不同,分为多个版本,调用时类型或这个数来决定执行那一个版本,这样调用者提供了更多的选择,例如:
1 public void println()
2 public void println(String x)
3 public void println(int x)
要注意,方法重载的两个关键要素是:
- 方法名相同
- 参数类型/个数不相同
Getter and Setter
通常, 在java类中, 实例属性都写成private, 这样可以有效地保护对象内部的数据. 外部如何对这些属性进行读写?
内部类(Inner Class)
定义在一个类的内部的类就是内部类:
public class OuterClass {
private int age;
// 内部类
public class InnerClass {
}
}
内部类其实就是外部类的一种成员, 它也可以是private, public, static的. 但是, OuterClass外部如果想实例化内部类, 得这样:因为这里的InnerClass是OuterClass的实例成员, 必须依赖于OuterClass的实例, 所 以先new OuterClass.
OuterClass.InnerClass obj = new OuterClass().new InnerClass();