- 棧--à對象名
- 堆--à對象屬性
- 全局代碼區--à所有的方法
- 訪問屬性或方法;一、對象.屬性 對象.方法
- 類中方法的使用 一個類中可以定義多個方法,這些類內部的方法之間可以互相調用,當然在調用前也可以加上一個this關鍵字,表示當前類之中的方法,即:this.方法名稱()
- This 表示本類中的屬性 採用setXxx()和getXxx()方法對私有變量的操作
- 構造方法 1、具有與類相同的名稱 2、它不含返回值類型的定義 3、它不能在方法中用return 語句返回一個值。
- 構造方法的定義; class Person{
- Public Person(){};
- }
- 構造方法調用時機 構造方法在實例化對象時被自動調用,主要用來爲類中的屬性初始化
- 構造方法的重載 與一般方法重載類似,只要參數的個數類類型不同即可。
- 構造方法是在對象實例化時被自動調用 對象實例化需要通過new關鍵字
- 對象產生的格式; 類 對象名 = new 類();
- 類():調用類中的構造方法
- 在java之中每個類必須有一個構造方法,如果沒有構造方法,則會自得生成一個無參的什麼都不做的構造方法,因爲所有的對象產生時都必須調用構造方法 如果程序中已經明確寫出了構造方法,則不會再產生一個無參的什麼都不做的構造方法。
- 結論:無論採用那種方法爲類中的發生賦值,最好都經過setter 方法,由setter 方法對輸入的內容進行檢測,而getter 方法只是將內容簡單的返回。
- class Person
- {
- String name ;
- int age ;
- };
- // 要使用類需要通過對象
- public class OODemo02
- {
- public static void main(String args[])
- {
- // 格式:類 對象名 = new 類() ;
- // 聲明一個對象 lxh1
- // 在方法中聲明對象時必須賦值
- Person lxh1 = null ; //聲明,爲空。
- // 爲對象實例化,開闢堆內存空間
- lxh1 = new Person() ;
- lxh1.name = "李興華" ;
- lxh1.age = 28 ;
- Person lxh2 = new Person() ;
- lxh2 = lxh1 ; // 對象的引用傳遞
- lxh2.name = "魔樂先生" ;
- lxh1.age = 20 ;
- // 試着輸出:
- System.out.println("姓名:"+lxh1.name) ;
- System.out.println("年齡:"+lxh1.age) ;
- System.out.println("*********************************") ;
- System.out.println("姓名:"+lxh2.name) ;
- System.out.println("年齡:"+lxh2.age) ;
- }
- };
- 結果:
- 姓名:魔樂先生
- 年齡:20
- ***********
- 姓名:魔樂先生
- 年齡:20
- //定義格式; class 類名稱
- //{}
- class Person
- {
- String name;
- int age;
- public void shout()
- {
- System.out.println("姓名:" + name);
- System.out.println("年齡:" + age);
- }
- }
- //要使用類需要通過對象
- public class javaoo012
- {
- public static void main(String args[])
- {
- //格式;類 對象名 = new 類()
- //在方法中聲明對象時必須賦值
- Person hyj1= new Person();
- hyj1.name = "侯亞俊";
- hyj1.age = 22;
- Person hyj2 = new Person();
- hyj2.name = "魔樂";
- hyj2.age = 20;
- //試着輸出
- hyj1.shout();
- System.out.println("***************************");
- hyj2.shout();
- }
- }
- 姓名:侯亞俊
- 年齡:22
- ***************************
- 姓名:魔樂
- 年齡:20
- //類定義格式 :class 類名稱 標準的命名規範:首字母大寫
- class Person
- {
- String name;
- int age;
- public String shout()
- {
- this.run(); //run
- return "姓名;" + this.name + "/n年齡:" + this.age;
- //return "姓名;" +name + "/n年齡:" + age;
- }
- //this 如果沒有私有變量即體現不出其作用。
- public void run()
- {
- System.out.println("早上跑步。。。");
- }
- }
- //要使用類需要通過對象
- public class javaoo012
- {
- public static void main(String args[])
- {
- //格式: 類 對象名 = new 類()
- //聲明一個對象hyj 在方法中聲明對象時必須賦值
- Person hyj1 = new Person();
- hyj1.name = "侯亞俊";
- hyj1.age = 22;
- Person hyj2 = new Person();
- hyj2.name = "魔樂";
- hyj2.age = 20;
- System.out.println(hyj1.shout());
- System.out.println("******************");
- System.out.println(hyj2.shout());
- }
- }
- 早上跑步。。。
- 姓名;侯亞俊
- 年齡:22
- ******************
- 早上跑步。。。
- 姓名;魔樂
- 年齡:20
- class Person
- //無論採用那種方法爲類中的發生賦值,最好都經過setter 方法,由setter 方法對輸入的內//容進行檢測,而getter 方法只是將內容簡單的返回。
- class Person
- {
- //private聲明的屬性只能在本類看見
- private String name;
- private int age;
- //加入一系列的setter 和 getter 方法
- public void setName(String n)
- {
- name = n;
- }
- public void setAge(int a )
- {
- if (a > 0 && a<150 )
- {
- age = a;
- }
- else
- {
- age = -1;
- }
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- public String shout()
- {
- return "姓名:" + this.name + "/n年齡:" + this.age;
- }
- }
- public class javaoo012
- {
- public static void main(String args[])
- {
- Person hyj = new Person();
- hyj.setName("侯亞俊");
- hyj.setAge(22);
- System.out.println(hyj.shout());
- }
- }
- //setter ,gettter沒明白什麼爲什麼要加判定邏輯錯誤???
- class Person
- {
- //private聲明的屬性只能在本類看見
- private String name;
- private int age;
- public void setName(String n)
- {
- name = n;
- }
- public void setAge(int a )
- {
- if (a >0 && a <150)
- {
- age = a;
- }
- else
- {
- age = -1;
- }
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- public String shout()
- {
- return "姓名:" + this.name + "/n年齡:" + this.age;
- }
- }
- //要使用類需要通過對象
- public class javaoo012
- {
- public static void main(String args[])
- {
- Person hyj = new Person();
- hyj.setName("侯亞俊");
- hyj.setAge(22);
- System.out.println(hyj.shout());
- }
- }
- 姓名:侯亞俊
- 年齡:22
- //在java之中每個類必須有一個構造方法,如果沒有構造方法,則會自得生成一個無參的什麼都不做的構造方法,因爲所有的對象產生時都必須調用構造方法 如果程序中已經明確寫出了構造方法,則不會再產生一個無參的什麼都不做的構造方法。
- //構造方法是在對象實例化時被自動調用 對象實例化需要通過new關鍵字
- class Person
- {
- //private 聲明的屬性只能在本類看見
- private String name;
- private int age;
- Person()
- {}
- //加入一個構造方法
- Person(String n,int a)
- {
- //爲類中的屬性初始化
- this.setName(n);
- this.setAge(a);
- System.out.println("******構造方法被調用******");
- }
- //加入一系統的setter ,getter 方法
- public void setName(String n)
- {
- name = n;
- }
- public void setAge(int a)
- {
- if (a > 0 && a < 150)
- {
- age = a;
- }
- else
- {
- age = -1;
- }
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- public String shout()
- {
- return "姓名:" + this.name + "/n年齡:" + this.age;
- }
- }
- public class javaoo012
- {
- public static void main(String args[])
- {
- Person hyj = new Person("李興華",-22);
- Person hyj1 = new Person();
- hyj1.setName("侯亞俊");
- hyj1.setAge(22);
- System.out.println(hyj.shout());
- System.out.println("************");
- System.out.println(hyj1.shout());
- }
- }
- ******構造方法被調用******
- 姓名:李興華
- 年齡:-1
- ************
- 姓名:侯亞俊
- 年齡:22