类和对象
类是Java程序的基本组成单位
类:成员变量+成员方法
对象的使用
创建多个对象,堆内存中的地址值不同
package day3;
/**
* @author NJR10byh
* @date 2022/7/14 16:58:54
* @description 类和对象 (父类)
*/
public class task3_1 {
String brand;
String model;
String inch;
public void GetInfo() {
System.out.println("品牌:" + brand);
System.out.println("型号:" + model);
System.out.println("尺寸:" + inch);
}
}
package day3;
/**
* @author NJR10byh
* @date 2022/7/14 17:19:23
* @description 类和对象 (调用)
*/
public class task3_2 {
public static void main(String[] args) {
task3_1 p1 = new task3_1();
p1.brand = "Microsoft";
p1.model = "SurfaceBook Pro";
p1.inch = "14\"";
System.out.println(p1.brand);
p1.GetInfo();
task3_1 p2 = new task3_1();
p2.brand = "Apple";
p2.model = "MacBook Pro";
p2.inch = "16\"";
System.out.println(p2.brand);
p2.GetInfo();
}
}
类中的方法,多个对象可公用,但是成员变量是不同的
成员变量和局部变量
- 成员变量:类中方法外的变量
- 局部变量:方法中的变量
- 成员变量和局部变量的区别
区别 | 成员变量 | 局部变量 |
---|---|---|
类中位置不同 | 类中方法外 | 方法内或方法声明上 |
内存中位置不同 | 堆内存 | 栈内存 |
生命周期不同 | 跟随对象存亡 | 跟随方法调用存亡 |
初始值不同 | 有默认初始值 | 没有默认初始值,必须先定义赋值后才能使用 |
封装
private关键字
保护成员变量不会被别的类使用
package day3;
/**
* @author NJR10byh
* @date 2022/7/15 10:23:31
* @description private保护成员变量
*/
public class task4_1 {
String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if (age < 18) {
System.out.println("您还未成年!");
} else {
this.age = age;
}
}
public void getInfo() {
System.out.println(name + " " + getAge());
}
}
package day3;
/**
* @author NJR10byh
* @date 2022/7/15 10:23:38
* @description private保护成员变量(调用)
*/
public class task4_2 {
public static void main(String[] args) {
task4_1 t = new task4_1();
t.name = "Neymar JR";
// t.age = 18; // 报错,private修饰,不能在别的类中被访问
t.setAge(16);
t.setAge(20);
t.getInfo();
}
}
this关键字
this修饰的变量用于指代成员变量
this:代表所在类的对象引用
方法被哪个对象调用,this就指向哪个对象
- this的内存原理
封装
构造方法
构造方法是一种特殊的方法
作用:创建对象
功能:完成对象数据初始化
// 格式
public class 类名{
修饰符 类名(参数){
}
}
创建
- 如果没有定义构造方法,系统将会自己定义一个默认的无参构造方法
- 如果定义了构造方法,系统将不会再提供默认构造方法
重载
- 如果自定义了带参构造方法,还要使用无参构造方法,就必须再定义一个无参构造方法
使用方式
- 推荐无论是否使用,都手动写无参构造方法
练习代码: day3_code