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();