面向對象(封裝的概述)


封裝概述

  • 是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。

封裝好處

  • 隱藏實現細節,提供公共的訪問方式
  • 提高了代碼的復用性
  • 提高安全性

封裝原則

  • 將不需要對外提供的內容都隱藏起來
  • 把屬性隱藏,提供公共方法對其訪問

 

private關鍵字的概述和特點

  • 是一個權限修飾符
  • 可以修飾成員變量和成員方法
  • 被其修飾的成員只能在本類中被訪問

案例演示

  • 把成員變量用private修飾
  • 提供對應的getXxx()和setXxx()方法
  • private僅僅是封裝的一種體現形式,不能說封裝就是私有
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.name = "zhang";  //調用姓名屬性並賦值
    //    p1.age = 23;        //調用年齡屬性並賦值
    //    p1.speak();            //調用行為
        
        p1.setAge(-1);
        System.out.println(p1.getAge());
    }
}

class Person{
    String name;
    private int age;
    
    public void setAge(int a) {
        if (a > 0 && a < 200) {
            age = a;
        }else {
            System.out.println("重設");
        }
    }
    
    public int getAge() {
        return age;
    }
    
    public void speak() {
        System.out.println(name + "..." + age);
    }
}

 

this關鍵字的特點

  • 代表當前對象的引用

案例演示

  • this的應用場景
  • 用來區分成員變量和局部變量重名
public class This {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.setName("zhang");
        p1.setAge(23);
        System.out.println(p1.getName() + "..." + p1.getAge());
    }
}
class Person{
    private String name;
    private int age;
    
    public void setAge(int age) {
        if (age > 0 && age < 200) {
            this.age = age;
        }else {
            System.out.println("重設");
        }
    }
    
    public int getAge() {
        return age;
        
    }
    
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM