Java作为一种面向对象的语言,即OOP(Object Oriented Programming)语言。其所具有的三大特征:
- 继承
- 封装
- 多态
这三点在类与对象这一部分重点体现。如果我们把类比喻成模板,那对象就相当于实体。
一.对象的初始化
- 方法1
提供的一系列的get和set方法
例如:
class PersonOne {
private String name;//实例变量 属性 数据成员
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
- 方法2
调用合适的构造函数,构造函数不止一个。例如:
class PersonTow {
private String name;//实例变量 属性 数据成员
private int age;
private String sex;
public PersonTow() {//不带有参数的构造函数
this("caocao",18,"man");//必须放在第一行
System.out.println("Person.init");
}
public PersonTow(String name,int age,String sex) {//不带有参数的构造函数
System.out.println("Person(String,int,String).init");
this.age = age;
this.name = name;
this.sex = sex;
}
- 方法3
静态代码块,实例代码的初始化。例如:
class Person {
private String name = "baozi";//实例变量 属性 数据成员
private int age;
private String sex;
private static int data;
private static int data2 = 99;
static {//静态代码块初始化 ===》只初始化一次
//this.sex = "man";
System.out.println("static{}");
data = 10;
}
{//实例代码块初始化
System.out.println("instance{} init");
this.sex = "man";
this.age = 10;
this.name = "gaobo";
}
在一个程序中,对象的初始化顺序:
静态代码块初始化 – > 实例代码块初始化 --> 构造函数初始化
内部类
1、静态内部类
2、实例内部类
3、本地内部类 --> 方法内部的类
4、匿名内部类
重点:
1、静态内部类===》外部类的静态数据成员 static所修饰的类
如何得到静态内部类对象呢?
OuterClass.InnerClass in1 = new OuterClass.InnerClass();
在静态内部类当中,可以访问外部类的静态数据成员。
2、实例内部类===》外部类的实例数据成员
问题:如何得到实例内部类对象
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass in1 = outerClass.new InnerClass();