面向对象——封装

封装

1、概述的概述

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

(2)封装的好处

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

(3)封装原则

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

2、private的关键字的概述和特点

关键字特点

  • 是一个权限修饰符
  • 可以修饰成员变量和成员方法
  • 被其修饰的成员只能在本类中被访问
public static void main(String[] args) {
        Person p = new Person();
        p.name = "lc";   //调用姓名属性赋值
        p.setAge(22);
        System.out.println(p.getAge());
        p.speak();    //调用方法
    }
}

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

3、this关键字的概述和应用

特点:代表当前对象的引用,用来区分成员变量和局部变量重名

public static void main(String[] args) {
        Person p = new Person();
        p.setName("lc");
        p.setAge(22);
        System.out.println(p.getName()+"..."+p.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 String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

4、手机类及其测试

public static void main(String[] args) {
        Phone p = new Phone();
        p.setBrand("vivoxplay5");
        p.setPrice(2999);
        System.out.println(p.getBrand()+"..."+p.getPrice());
     p.call();
     p.
sendMessage();
p.playGame();

    }        
}

/**
 * 手机类
 * 属性:品牌(brand),价格(price)
 * 行为:打电话(call),发短信(sendMessage),玩游戏(playGame)
 * @author Administrator
 *
 */
class Phone{
    private String brand;
    private int price;    
    
    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public void call(){
        System.out.println("打电话");
    }
    
    public void sendMessage(){
        System.out.println("发短信");
    }
    
    public void playGame(){
        System.out.println("玩游戏");
    }
}

 

posted @ 2019-04-10 19:23  LC97  阅读(123)  评论(0编辑  收藏  举报