封装,是面向对象思想的特征之一
封装表现:
1、方法就是一个最基本封装体。
2、类其实也是一个封装体。
封装的好处:
1、提高了代码的复用性。
2、隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理 解为就是封装的概念。
3、提高了安全性。
例子:
package com.oracle.demo2; public class Person { //私有:private 关键字 把变量还有方法私有化,外界不能访问 //只能在本类中访问。 //封装:隐藏实现细节,对外提供访问方式 private String name;//类中基本特征 private int age; //无返回值,利用形参接收参数,进行赋值 public void setName(String n){ this.name =n; } //有返回值,利用调用方法,方法给出返回值,再还给调用地方 public String getName(){ return name; } //无返回值,利用定义形参a来接收实参传的值,再进行运算判断 public void setAge(int a){ //给创建的新对象的年龄的属性值设置范围权限 if(a>=0&&a<=120){ this.age =a; }else{ this.age =0; } } //创建类中对象的说话功能 public void speak(){ System.out.println("我叫"+name+",今年"+age+"岁了"); } public boolean compare(Person p){ return p.age ==this.age; } }
测试类:
package com.oracle.demo2; public class Test { public static void main(String[] args) { //创建新对象 Person p1 = new Person(); // p1.name="雄大"; // p1.age=22; p1.setAge(18);//调用添加赋值方法,利用实参传递值 p1.setName("熊大"); Person p2 =new Person(); // p2.name= "熊二"; // p2.age=11; p2.setAge(-12); p2.setName("熊二"); System.out.println(p1.getName());//打印,调用显示方法 p1.speak();//调用类中说话功能 p2.speak(); p1.compare(p2);//比较对象p1和对象p2 System.out.println(p1.compare(p2)); } }
结果演示:
this关键字
注意:
当在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量
总结:
1.面向对象和面向过程,举例理解,知道区别
2.在新建类中有成员变量和成员方法,
3.成员变量和局部变量区别,成员变量存储在堆里,局部变量存储在栈,方法里
4.成员变量在堆里默认赋初值
5.私有private 关键字 ,把变量,方法私有化,外界不能访问,只能在本类中访问。
6.封装,隐藏实现细节,对外提供访问方式
7.类和对象的区别,对象进堆,类是抽象的,对象是具体的,对象是类的一个实例,对象继承类的方法和属性
8.面向对象基本特征,继承,封装,和多态