学习视频:https://www.bilibili.com/video/BV18J411W7cE?p=107&spm_id_from=pageDriver
封装
private关键字:
1、是一个修饰符。
2、可以修饰成员(成员变量和成员方法)
3、作用时保护成员不被别的类使用,被private修饰的成员只在本类中可以被访问。
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
1、提供“get变量名()”方法,用于获取成员变量值,方法用public修饰
2、提供“set变量名(参数)”方法,用于设置成员变量值,方法用public修饰
package Demo;
public class Student {
String name ;
private int age ;
//get和set方法
public int getAge() {
return age;
}
public void setAge(int a) {
age = a;
}
public void show () {
System.out.println(age);
}
public void Study() {
System.out.println("学习");
}
public void doHomework() {
System.out.println("做作业");
}
}
private关键字的使用:
package Demo;
public class studentDemo {
public static void main(String[] args) {
Student girl = new Student() ;
Student boy = new Student() ;
System.out.println(girl) ;
System.out.println(boy) ;
girl.name = "小月月" ;
girl.setAge(18); //private关键字的使用
boy.name = "小强" ;
boy.setAge(19); //private关键字的使用
System.out.println(girl.name+girl.getAge()) ; //private关键字的使用
System.out.println(boy.name+boy.getAge()) ; //private关键字的使用
girl.doHomework() ;
girl.show();
}
}
this关键字:
this修饰的变量用于指代成员变量
1、方法的形参如果与变量名相同,不带this修饰的变量指的是形参,而不是成员变量。
2、方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量。
private int age ;
//get和set方法
public int getAge() {
return this.age ;
}
public void setAge(int age){
this.age = age ;
}
this内存原理:
封装:
1、封装概述:
是面向对象的三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内的,外界无法直接操作
2、封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private。
3、封装的好处
提供方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性
构造方法:
构造方法是一种特殊的方法,用于创建对象
//格式
public class 类名{
修饰符 类名(参数){
}
}
package Demo;
public class Student {
String name ;
private int age ;
//无参构造方法
public Student() {
System.out.println("无参构造方法");
}
}
构造方法注意事项:
1、构造方法的创建
- 如果没有定义构造方法,系统将给出一个默认的无参构造方法
- 如果定义了构造方法,系统将不再提供无参构造方法
2、构造方法重载
- 如果自定义了带参构造方法,还要使用无参构造方法,就必须再写一个无参构造方法
3、推荐的使用方法
- 无论是否使用,都手工书写无参构造方法
package Demo;
public class Student {
String name ;
private int age ;
//无参构造方法
public Student() {
System.out.println("无参构造方法");
}
public Student(int age){
this.age = age ;
}
public Student(String name){
this.name = name ;
}
public Student(int age,String name){
this.age = age ;
this.name = name ;
}
}
package Demo;
public class studentDemo1 {
public static void main(String[] args) {
Student s1 = new Student();
s1.show();
Student s2 = new Student(18);
s2.show();
Student s3 = new Student("xiaoming");
s3.show();
Student s4 = new Student(18,"xiaoming");
s4.show();
}
}
标准类的制作:
1、成员变量
- 使用private修饰
2、构造方法
- 提供一个无参构造方法
- 提供一个带多个参数的构造方法
3、成员方法
- 提供每一个成员变量对应的set和get方法
- 提供一个显示对象信息的show方法
4、创建对象并为其成员变量赋值的两种方式
- 无参构造方法创建对象后使用set方法赋值
- 使用带参构造方法直接创建带