面向对象(封装的概述)

封装概述

  • 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

封装好处

  • 隐藏实现细节,提供公共的访问方式
  • 提高了代码的复用性
  • 提高安全性

封装原则

  • 将不需要对外提供的内容都隐藏起来
  • 把属性隐藏,提供公共方法对其访问

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;
    }
}

猜你喜欢

转载自www.cnblogs.com/happystudyhuan/p/10702541.html