1. 程式人生 > >七、java基礎之物件

七、java基礎之物件

一、面向物件:

/*
1.面向物件可分為三個階段:
OOA:面向物件的分析
OOD:面向物件的設計
OOP:面向物件的程式設計
2.類的定義:
Student是一個類,是一種引用型別
概念上的一個定義,現實世界中不存在
變數前面沒有static的修飾,叫做成員變數
*/
public class Student {
    //屬性:

    //學號
    int id;//成員變數;例項變數,非靜態變數,成員變數如果沒有手動賦值,系統則預設賦值
            //id是物件級別的,必須先有物件才能訪問,不能使用類直接訪問
    //姓名
    String name;
    //性別:
    boolean
sex; //年齡 int age; //住址 String addr; //方法 }

3.物件如何建立及訪問

public class ClassTest01 {
    public static void main(String[] args){
        //建立物件
        //stu1是一個區域性變數,這個區域性變數是Student型別,也就是一個引用型別
        //stu1稱作:引用,指向記憶體中的一個地方引用中儲存了物件在堆中的記憶體地址
        //通過“引用”去間接訪問堆中的物件

        Student stu1
=new Student(); //new的意思是在stack中開闢一個空間,這個空間是Student型別 //java中所有的new出來的資料統一儲存在堆區中,程式設計師無法對堆區資料直接訪問,只能通過記憶體地址間接訪問 //一個類可以建立多個物件 Student stu2=new Student(); //使用物件 //訪問成員變數,必須使用“引用.” //name是成員變數,物件相關,必須先有物件才能訪問,必須使用“引用.” //System.out.println(Student.name);
//error //讀取 System.out.println(stu1.id);//0 System.out.println(stu1.sex);//false System.out.println(stu1.addr);//null System.out.println(stu1.age);//0 System.out.println(stu1.name);//null /* byte,short,int,long 0 float,double 0.0 boolean false char \u0000 引用資料型別 null */ //賦值 stu1.addr="北京海淀區"; stu1.age=12; stu1.id=1; stu1.name="chu"; stu1.sex=true; // System.out.println(stu1.id); System.out.println("sut1.sex="+(stu1.sex?"男":"女"));//三目運算 System.out.println(stu1.addr); System.out.println(stu1.age); System.out.println(stu1.name); } }

4.面向物件的封裝性

//面向物件的封裝性
//類=屬性+方法
//屬性來源於狀態,方法來源於動作

建立Custom類
//定義一個顧客型別
/*
1.屬性私有化
2.對外提供公開的setter和getter
3.setAge和getAge方法的方法名遵循規範
*/
public class Custom {
    //屬性
    //成員變數,非靜態變數,例項變數
    //private修飾的資料只能在本類中訪問
   // private int age;
    int age;

    //對外提供兩個公開的方法
    //set
    public  void setAge(int _age){
        //安全性校驗
        if(_age<0 || _age>100){
            System.out.println("年齡不合法");
            return;
        }
        age=_age;
    }

    //get
    public  int getAge(){
        //不帶static成員方法,例項方法,非靜態方法
        //成員方法必須使用“引用.”的方式訪問
        return age;
    }


}

訪問:

public class ClassTest02 {
    public static void main(String[] args){
        //1.建立Custom型別物件
        Custom cus=new Custom();
        /*
        //讀取
        System.out.println(cus.age);
        //3.賦值
        cus.age=1;
        //4.讀取
        System.out.println(cus.age);
        */
        //賦值
        cus.setAge(-10);
        //讀取
        System.out.println(cus.getAge());
    }

}