封装
面向对象编程的三大特征:封装、继承、多态
封装作用:
1.保护内部结构的安全
2.屏蔽复杂,操作简单
代码级别上,封装作用:
1.保护内部数据的安全
2.不需要关心代码的复杂实现,只需要一个简单的入口就可以访问。
实现封装:
1.属性私有化(使用privtae关键字进行修饰)
private--私有,只能在本类中访问这个关键字修饰的数据
2.对外提供简单的操作入口--通过特定方法来实现
提供一个方法专门完成读数据(get)
提供一个方法专门完成写数据(set)
对外提供公开的set/get方法作为操作入口,并且都不带static,都是实例方法
格式:
[修饰符列表] 返回值类型 方法名(形参列表){}
get方法格式:
public 返回值列表 get 属性名字母大写(无参){}
set方法格式:
public void set+属性名字母大写(有一个参数){
属性名=参数;
}
eg:
public class Person {
//int age;//从外部可随意访问,不安全
}
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
System.out.println(p1.age);
p1.age = 50;//修改数据
System.out.println(p1.age);
//随意访问数据,数据不安全
修改:
public class Person {
private int age;
public int getage(){
return age;
}
public void setage(int x){
if(x<0 || x>150){
System.out.println("error");
}else{
age = x;
}
}
}
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
int nianling = p1.getage();
System.out.println(nianling);
p1.setage(-100);
System.out.println(p1.getage());
//System.out.println(p1.age);
//p1.age = 50;//修改数据
// System.out.println(p1.age);
//随意访问数据,数据不安全
//PersonTest P1 =new PersonTest();
//P1.test01();
}
}
【】补充内容
没有static的方法:实例方法==对象方法,实例变量==对象变量;
实例相关变量和方法,都需要先new对象,通过“对象名. ”方式去访问
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person();
PersonTest P1 =new PersonTest();
P1.test01();
}
public static void test(){
System.out.println("test");
}
public void test01(){
System.out.println("no static ");
}
}
no static

浙公网安备 33010602011771号