面向对象三大特征之一:封装
封装概述:指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的好处:1.隐藏实现细节,提供公共的访问方式
2.提高了代码的复用性
3.提高安全性。
封装的原则:1.将不需要对外提供的内容都隐藏起来。
2.把属性隐藏,提供公共方法对其访问。
private关键字:是一个权限修饰符。 可以修饰成员(成员变量和成员方法) 被private修饰的成员只在本类中才能访问。
this关键字:代表所在类的对象引用
:方法被哪个对象调用,this就代表那个对象
:当局部变量隐藏成员变量时使用this
局部变量和成员变量同名时使用this
static关键字:可以修饰成员变量和成员方法
static关键字特点:
随着类的加载而加载
优先于对象存在
被类的所有对象共享 (这也是我们判断是否使用静态关键字的条件 )
可以通过类名调用
static关键字注意事项:
在静态方法中是没有this关键字的
静态方法只能访问静态的成员变量和静态的成员方法
private常见的应用 :把成员变量用private修饰 提供对应的getXxx()/setXxx()方法。
构造方法:给对象的数据进行初始化。
构造方法格式:方法名与类名相同
没有返回值类型
连void都没有 没有具体的返回值
构造方法注意事项: 如果你不提供构造方法,系统会给出默认构造方法
如果你提供了构造方法,系统将不再提供
构造方法也是可以重载的
一个基本类的标准代码写法:
类
成员变量
构造方法( 无参构造方法 带参构造方法)
成员方法 ( getXxx() setXxx() )
给成员变量赋值的方式
无参构造方法+setXxx()
带参构造方法
下面来一个练习:
//标准的学生类练习
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = 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;
}
//提供一个方法打所以成员变量值
public void show() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
class StudentText {
public static void main(String[] args) {
Student s = new Student("小明", 18);
s.show();
}
}