1.類和對象 概念:對象是實例,類是一組具有相同行為和屬性的對象的集合; 區別:類是對象的抽象,對象是類的實例化 2.如何聲明一個類: 語法: 修飾符 class 類名{ //類的屬性(數據類型 變數名;) //類的方法(修飾符 返回類型 方法名(參數列表){}) } 舉例: public clas ...
1.類和對象 概念:對象是實例,類是一組具有相同行為和屬性的對象的集合; 區別:類是對象的抽象,對象是類的實例化 2.如何聲明一個類: 語法: 修飾符 class 類名{ //類的屬性(數據類型 變數名;) //類的方法(修飾符 返回類型 方法名(參數列表){}) } 舉例: public class Person{ //聲明屬性名字 String name; //聲明無參數無返回類型的方法 public void info(){ System.out.println("我的名字叫"+name); } //聲明帶參數帶返回類型的方法 public int getWorkTime(int workTime){ return workTime; } } 3.實例化一個對象 語法一:類名 對象名 = null; 舉例:Person person = null; 對象名 = new 類名(); person = new Person(); 語法二:類名 對象名 = new 類名(); 舉例:Person person = new Person(); 4.構造方法: 特點:方法名要和類名完全相同 不能有返回類型 沒有聲明帶參構造方法的時候,jvm會預設提供一個無參構造方法 當聲明瞭帶參構造方法的時候,jvm不會提供無參構造方法 舉例: public class Person{ //聲明屬性名字 String name; //聲明一個無參構造方法 public Person(){} //聲明一個帶參構造方法 public Person(String name){ this.name = name; } } 5.this關鍵字的作用:代表當前對象 6.java的三大特點:封裝,繼承,多態(方法的重寫和重載) 7.封裝:(隱藏細節,對外提供方法,我們這裡指的是把屬性聲明為私有的,對外提供get,set方法,get獲取值,set賦值)例子: public class Person{ //聲明屬性名字 private String name; public String getName(){ return name; } public void setName(String name){ this.name = name; } } 8.繼承:extends關鍵字 (子類可以繼承父類的屬性和方法,構造方法不能被繼承) 舉例:學生類繼承人類 public class Student extends Person{ //聲明屬性成績 private int score; public String getScore(){ return score; } public void setScore(int score){ this.score = score; } } 假如父類聲明瞭帶參數的構造方法,這個時候子類會報錯,如何解決這個問題我們通過super關鍵字 public class Student extends Person{ public Student(String name){ super(name); } //聲明屬性成績 private int score; public String getScore(){ return score; } public void setScore(int score){ this.score = score; } } 9.方法重載:在同一個類中,方法名完全一致,參數列表不同(參數個數不同或者參數類型不同)舉例: public class Person{ //聲明屬性名字 String name; public void info(){ System.out.println("我的名字叫"+name); } public void info(int workTime){ System.out.println("我的名字叫"+name+",我每天工作"+workTime+"小時"); } } 10.方法重寫:在繼承關係中,方法名,參數列表,返回類型都要一致舉例: public class Person{ //聲明屬性名字 String name; public void info(){ System.out.println("我的名字叫"+name); } } public class Student extends Person{ //聲明屬性成績 private int score; public String getScore(){ return score; } public void setScore(int score){ this.score = score; } public void info(){ System.out.println("我的名字叫"+this.getName()+",我的成績是"+score); } } 11.final關鍵字(意思是不變) 特點:final修飾的變數為常量不可改變 final修飾的方法不可以被重寫 final修飾的類不能被繼承 12.static關鍵字(static修飾的變數,方法,代碼塊兒在類載入的時候只會載入一次) 通常情況下:聲明常量要這麼聲明 public static final String GUOJI="中國"; 單例模式: public class SingLeton{ private SingLeton(){} private static SingLeton sing = new SingLeton(); public static SingLeton getInstence(){ return sing; } } 單例模式的兩點要求:首先構造方法私有化 提供一個公共的靜態的獲取對象的方法 13.修飾符的作用域 private 本類中 default 本類 本包 protected 本類 本包 其它包的子類 public 本類 本包 其它包的子類 其它包