类和对象
Class:类是对一类具有相同属性的事物的抽象。可以理解为类只是一张设计图。
Object:对象是对类的实例化,就是按照类图纸,制造出来可操作的实体。
类的定义
class 类 {
成员变量 --> 代表类具备的属性
成员方法 --> 类可以进行的行为
}
举一个示例来看,比如学生。学生在
属性方面有(姓名、年龄)
行为方面有(学习、睡觉)
文件: Student.java
内容:
public class Student {
String name;
int age;
public void sleep() {
System.out.println("在睡觉");
}
public void study() {
System.out.println("学习");
}
}
类名 首字母大写,驼峰命名,见文知意
一个Java文件中只能有一个类被public修饰,且public修饰的类必须是代码的文件名,如上Student.java和public class Student {}
构造方法
无返回类型与类同名的方法。如果不写构造方法,JVM会自动为类添加一个无参构造方法。
如果写了构造方法,则不会自动生成无参构造方法。
每次实例化时,虚拟机会自动调用构造方法,用来初始化对象。
注: 建议在构造类时,手动把空参和带全部参数的构造方法都写上。
class Person {
int age;
String gender;
public Person() {
System.out.println("空参构造");
}
public Person(int age, String gender) {
this.age = age;
this.gender = gender;
System.out.println("有参构造方法");
}
}
标准JavaBean类和快捷键
标准
- 类名要见名知意
- 成员变量要用 private 确保安全性
- 提供至少两个构造方法
- 无参构造
- 带全部参数的构造方法
- 成员方法
- 提供每个成员变量对应的 get() 和 set() 方法
- 其他相关方法
IDEA 快捷键
- alt + Insert
Constructor 为生成构造器
Getter and Setter 为成员变量生成 get & set 方法
- PTG 插件
Ptg To JavaBeam,会自动生成所有成员变量的 get & set 方法甚至注释都帮你写好了
对象内存图
课程链接 对象内存图
共享成员变量
使用 static 修饰符
学生类中,如果要使所有学生共享 专业 department 这个变量就进行如下操作。
class student {
private String name;
private String gender;
public static String department; // 所属专业
}
public class StuTest {
public static void main(String[] args) {
student.department = "计算机"; // 用类名直接调用
student stu1 = new student();
stu1.department = "软件工程"; //用实例对象调用
student stu2 = new student();
student stu3 = new student();
System.out.println(stu1.department);
System.out.println(stu2.department);
System.out.println(stu3.department);
System.out.println(student.department);
}
}
Output:
软件工程
软件工程
软件工程
软件工程
注: 建议使用类名调用,既然是共享,逻辑上不应该用某个实例来调用。
静态变量归属于类,随类加载,优先于实例对象。
类加载后会在堆存储中开辟静态存储区。后期实例化的 stu1, stu2 都会自动去静态存储区取得静态变量 department 的值。
感受:其实静态变量并不是说,这个变量不能修改,而是同类实例共享变量值。
标签:Java,构造方法,对象,System,println,student,department,public From: https://www.cnblogs.com/libayu/p/17167496.html