1.封装
- A:封装的引入
通过学生案例,给年龄赋值为负数引出数据问题。
然后通过private解决这个问题。最后说其实这就是封装。 - B:封装概述
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
高内聚,低耦合:类的内部数据操作细节有自己完成,不允许外部干涉。
属性私有,对外提供public的get、set(这里可以做一些安全性的验证)。 - C:封装好处
1.隐藏实现细节,提供公共的访问方式
2.统一接口
3.提高安全性,保护数据。
4.系统可维护增加 - D:封装原则
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
2.private关键字
- a:是一个权限修饰符
- b:可以修饰成员变量和成员方法
- c:被其修饰的成员只能在本类中被访问
public class Test {
public static void main(String[] args) {
Demo d = new Demo();
//不能方法私有的成员变量
//System.out.println(d.num);
d.show();
//不能访问私有的成员方法
//d.method();
d.function();
}
}
class Demo {
//int num = 10;
private int num = 10;
public void show() {
System.out.println(num);
}
private void method() {
System.out.println("method");
}
public void function() {
method();
}
}
3.private应用的标准案例
(1):把成员变量用private修饰
(2):提供对应的getXxx()和setXxx()方法
class MyTest {
public static void main(String[] args) {
Student1 s = new Student1();
//System.out.println(s.name); 被私有了,外界不能访问
System.out.println(s.getName()+"---"+s.getAge());
// s.name = "旺旺";只能通过方法赋值
s.setName("旺旺");
s.setAge(3);
System.out.println(s.getName()+"---"+s.getAge());
}
}
class Student1 {
private String name;
private int age;
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;
}
}
4.this关键字
- A:为什么要有this
当我们的局部变量和成员变量相同的时候,如果我们不使用this关键字,那么会导致一个问题:就是局部变量隐藏了成员变量的问题 - B:this关键字特点
是当前类的对象引用。
简单的记,它就代表当前类的一个对象。谁调用这个方法,那么该方法的内部的this就代表谁 - C:this的应用场景
解决局部变量隐藏成员变量
public class Person {
public int age;
public Person() {
int age = 0;
this.age = 25;
}
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.age);
}
}