1. 程式人生 > ><JAVA - 面向對象(二)>

<JAVA - 面向對象(二)>

取值 sta 方法 end 類名 調用方法 args 靜態內部類 spa

package This_Demo01;
/**
 *         學生類模板:
 *         JAVA中的關鍵字:
 *                 this:
 *                     調用屬性:
 *                         this.屬性名:
 *                             當局部變量與成員變量名稱相同時,使用this關鍵字代表成員變量
 *                             如果局部變量和成員變量名稱不同,this可以省略 
 *                     調用方法:
 *                         this.方法();
 *                             本類中可以省略this
 *                     調用構造函數:
 *                          this();     // 調用無參構造
 *                          this("小子",2);  // 調用有參構造
 *                             this語句必須要在構造函數第一句
 * 
 *         static可以修飾:
 *             【1】屬性         ->靜態變量   / 類變量        --定義在類中
 *             【2】方法         ->靜態方法  / 類方法        --定義在類中
 *             【3】代碼塊         ->靜態代碼塊
 *             【4】內部類         ->靜態內部類
 *     
 *         static  修飾屬性 ,方法等,在類加載的時候就被一同加載到內存中來的
 *                 使用方法:
 *                     類名.屬性名/方法名()
 *                     對象名.屬性名/方法名()
 *     註意:
 *         static方法只能使用或調用static修飾的變量或調用static方法
 *             不可以使用非static修飾的屬性(成員屬性)
 *             而static  的方法在類的加載時產生,存在共享區中
 *             在靜態方法加載到內存中式還沒有對象的產生,所以不能使用
 *             非靜態方法不僅可以調用非靜態的屬性和方法還可以調用靜態的方法和屬性
 *                 因為後產生的可以調用先產生的。
 *     
 * 
@author 韋桂金 * */ public class Student { // 編寫屬性 private int idNum; // 學號 private String name; // 姓名 private char gender; // 性別 //private String city; // 所在地 public static String city; // 所在地 -- // 無參構造 public Student() {} // 有參構造 public Student(int idNum,String name,char
gender,String city) { this("鎮江",‘男‘); //this(); //調用無參 this.idNum = idNum; this.name = name; this.gender = gender; this.city = city; } public Student(String name,char gender) { this.name = name; this.gender = gender; }
// 公有的取值賦值 // 學號 public int getIdNum() { return idNum; } public void setIdNum(int idNum) { this.idNum = idNum; } // 姓名 public String getName(){ return name; } public void setName(String name) { this.name = name; } // 性別 public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } // 城市 public String getCity() { return city; } public void setCity(String city) { this.city = city; } // 方法 public void Init() { System.out.println("我是學號為:"+getIdNum()+"的"+getName()+",性別:"+getGender()+",來自於:"+getCity()); } }
package This_Demo01;
/**
 *  測試類
 * @author 韋桂金
 *
 */
public class Test {
    public static void main(String[] args) {
        // 創建對象
        Student su = new Student(123421,"西克",‘男‘,"非洲");
        
        su.Init();
        System.out.println(su);   // 輸出是:內存地址
        
        su.city = "上海";         // 對象名.屬性
        Student.city = "北京";    // 類名.屬性
        System.out.println(Student.city);   // 
        
    }
}

04、代碼塊:

package The_code_block_Demo01;
/**
 *         代碼塊:
 *             概念: 使用{}  括起來的一段代碼
 *                 分類:
 *                     普通代碼嗎塊    直接在方法或語句中定義的代碼塊
 *                     構造代碼塊        直接寫在類中的代碼塊
 *                     靜態代碼塊        使用static 聲明的代碼塊
 *                     同步代碼塊        多線程對象的時候講
 * 
 *         執行流程:
 *             靜態代碼塊        -->加載一次
 *             構造代碼塊        -->每創建一個對象執行一次
 *             構造方法        -->每創建一個對象執行一次
 * @author 韋桂金
 *
 */
public class DemoBlock {
    static int city;
    public DemoBlock(){
        System.out.println("==========我是構造方法=========");
    }
    // 【2】構造代碼塊
    {
        System.out.println("============我是構造代碼塊=============");
    }
    
    //【3】靜態代碼塊
    static {
        city = 12;
        System.out.println("============我是靜態代碼塊===============");
    }
    public static void main(String[] args) {
        // 創建對象
        DemoBlock sum = new DemoBlock();
        
        
        //【1】普通代碼塊
        {
            //定義在方法中的代碼
            int age = 20;
            System.out.println(age);
        }
        for(int i = 1; i < 10; i++) {
            {
                int age = 50;
                System.out.println(age);
            }
        }
    }
}

<JAVA - 面向對象(二)>