1.封装的作用
类的内部会有一些固定数据,创建对象,操作对象时可能会改变类的的属性(数据),为了保护类的属性,需要对类的属性进行封装。
public class User{
final int num=100;
String name;
int age;
int id;
}
class MainClass{
public static void main(String[] args) {
User user1 = new User();
user1.num=12; //错误 num为常量不可改变
user1.name="Pita";
user1.age=19;
user1.id=001;
// 需要记住有哪些属性名和属性的类型--比较麻烦
// 需要赋值 -- 类的内部会有一些固定的数据,不可改变
}
}
eg:
set&get,将所有的属性封装隐藏起来,通过固定格式的方法,提供对内对外的访问方式。
对属性赋值,set方法,传入值 (参数)。
public void setName(String name){
this.name = name;
}
// this - 指代本类的对象 - 本类的哪个对象?哪个对象调用这个函数就是哪个对象,类似“我”。
// super - 代词,在子类中指代父类 指代子类可以调用到继承的方法的父类。
获取对象的属性 get方法,返回值
public String getName(){
return name;
}
2.构造函数的使用
1.格式:
方法名与类名同名 没有返回值结构 其他与普通方法无异。
public User(){
}
2.性质
构造方法 对于每个类而言,都默认具有一个隐式的空参数构造方法,如果显式写了任意一个构造方法,空参数构造方法都会被覆盖。
3.访问权限修饰符
在Java编程语言中有四种权限访问控制符,public, protected, friendly, private,这四种访问权限的控制符能够控制类中成员的可见性,限制访问范围。下表为访问范围:
注意:构造方法 private 在这个类的范围之外不能创建对象。
4.static关键字
static关键字可以修饰静态属性,方法,成员类(内部类),代码块。
特性:静态,唯一性,不属于对象,由类直接调用。
5.单例模式
单例模式为一个类有且只有一个对象,需要:
1.对构造方法进行私有化
2.在这个类中创建唯一对象
3.提供一个对外的对象出口
使用范围:当类太复杂,创建对象麻烦,类的开发者提供对象给用户,只能在类中创建对象,为单例模式,用户可以直接调用获取对象返回值的方法。
//静态方法可以直接通过类调用,不需要创建对象
public static Student create(){
Student student = new Student("国王", 40, 01, "苏格兰"); 在本类中创建对象
//复杂的操作 进行创建对象
return student;
}
/**
* @param name 设置名字
* @param age 设置年纪
* @param id 设置id
* @param address 设置地址
*/
private Student(String name, int age, int id, String address ){ //private 构造函数,一个,只能在本类中创建对象
this.name=name;
this.age=age;
this.id=id;
this.address=address;
System.out.println("复制流程已结束");
public class Stu {
public static void main(String[] args){
Student student = Student.create();//直接由类调用Static create方法,返回对象
System.out.println(student.getName());
}
}
}
6.如何查看一个类的代码?如何创建一个类?
查看一个类先看构造方法,静态方法(可直接执行的方法),再看属性,静态属性,方法。
创建一个类,先思考类具有的属性和行为,在写出属性和方法。