面向对象——封装
封装
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("玩游戏"); } }