封装概述:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,这里就会用到一个关键字是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);
}
}