封装概述:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,这里就会用到一个关键字是private,在后面的使用成员变量时候,不能直接调动,只能通过方法调用;
好处:
- 隐藏实现细节,提供公共的访问方式;
- 提高了代码的复用性;
-
封装原则:
将不需要对外提供的内容都隐藏起来;
-
private关键字
private关键字
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问- private最常见的应用
把成员变量用private修饰
提供对应的getXXX()/setXXX()方法
一个标准的案例的使用
package cn.manman.com;public class fengzhuang {private String name;private int age;private String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}
被private修饰之后的成员变量和成员方法只能在本类中使用,不能在另外一个类直接调用;
练习:
将手机类写成一个标准类,然后创建对象测试功能;
(1)封装类
package cn.manman.com;public class phone {private String brand;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 String getColor() {return color;}public void setColor(String color) {this.color = color;}private int price;private String color;}
(2)测试类
package cn.manman.com;public class PhoneDemo {public static void main(String[] args) {phone p=new phone();p.setBrand("华为");p.setColor("粉色");p.setPrice(10000);System.out.println(p.getBrand()+p.getColor()+p.getPrice());}}

结果
接下来看类中得成员方法以及使用:
package cn.manman.com;/** 类的组成:* 成员变量* 构造方法* 成员方法* 根据返回值:* void类型* 非void类型* 式参数:* 空参数方法* 非空参方法*/class fang{public String getString (){return "hello";}public void show(){System.out.println("show");}public void method(String name){System.out.println(name);}public String funtion(String s1,String s2){return s1+s2;}}public class fangfa {public static void main(String[] args) {fang f=new fang();//调用无参无返回值f.show();//调用无参有返回值方法String result=f.getString();System.out.println(result);//调用有参无返回值方法f.method("lisi");String result1=f.funtion("我是", "李四");System.out.println(result1);}}

结果
练习1:定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试了Test,进行测试;
package cn.manman.com;/** 定义一个类Demo,其中定义一个求两个数据和的方法,* 定义一个测试了Test,进行测试;*/class Demo{public int shuju(int a,int b){return a+b;}}public class lianxi1 {public static void main(String[] args) {Demo demo=new Demo();int sum=demo.shuju(10, 20);System.out.println(sum);}}
