JAVA面向對象封裝

一、屬性和方法封裝private

1、封裝的目的保護某些屬性和方法不被外部看到

2、封裝的實現,爲屬性和方法進行封裝使用private方法,爲外部訪問。

舉例如下:

package com.guo.ci;
class Person{
    private int age;
    private String name;
      public int getAge() {
        return age;
    }
    /*    public void setAge(int age) {
        if (age>=0&&age<=200) {
            this.age=age;
        }
    }*/
    public void setAge(int a) {
        if (a>=0&&a<=200) {
            age=a;
        }
    }
        public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void tell(){
        System.out.println("年齡"+getAge()+" "+"姓名"+name);
    }
}
public class Demo1 {
    public static void main(String[] args) {
        Person per =new Person();
        per.setAge(-30);
        per.setName("test");;
        per.tell();
    }

}

二、匿名對象

沒有名字的對象,如果程序中只有一次使用該對象,就可以使用匿名對象,例如:

package com.guo.ci;
class Student {
    public void tell() {
        System.out.println("hello world");
    }
}
public class Demo2 {
    public static void main(String[] args) {
        new Student().tell();
    }
}

三、構造方法

1、格式:訪問修飾符 類名稱(){程序語句}

2、注意:構造方法的名稱必須與類名一致;構造方法無返回值(無return)

3、構造方法主要是爲類中的屬性初始化

4、每個類在實例化之後都會調用構造方法,如果沒有構造方法,程序在編譯的時候會創建一個無參的什麼都不做的構造方法。

5、構造方法也可以重載

package com.guo.ci;
class Person1 {
    String name;
    int age;
    //構造函數
    public Person1(String n,int a) {
        name=n;
        age=a;
        System.out.println("姓名:"+name +" "+"年齡:"+age);
    }
    public Person1(int a) {
        age=a;
        System.out.println("年齡:"+age);
    }
}
public class Demo3 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
//        Person1 per=new Person1("張三",30);
        Person1 per=new Person1(30);
    }

}

重載的時候根據傳遞參數的個數選擇執行的構造函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章