类与对象
类与对象的创建
类与对象的关系
类是一种抽象的数据类型,它是对某一事务整体描述/定义,但是并不能代表某一个具体的事务。
类其实就是一个模板,比如说类就好比一张房子的设计图纸,或者说是一个倒印模具,创建一个类就好比设计一张图纸,刻一个模板。对象就好比一座建好的房子,一个成型的模型,无疑想要一座房子或者一个模型都先需要一张图纸和一个模板,而这就是类和对象的关系。
类如person类,pet类等,是一种抽象的数据类型。而对象是抽象的具体实例,例如张三就是person类的一个具体实例。对象能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。
创建和初始化对象
使用new关键字创建对象
使用new关键字创建的时候,处了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
创建对象内存分析可参考:[java面向对象-创建对象内存分析(jvm)](java面向对象-创建对象内存分析(jvm)_使得 student之外的任何测试类jvm内存中只有唯一一个student的对象_蚂蚁牙黑147的博客-CSDN博客)
public class student {
//属性:字段
String name;//null
int age;//0
//方法
public void study() {
System.out.println("在学习");
}
}
public class application {
public static void main(String[] args) {
//类:抽象的,实例化
//类实例化后会返回一个实例化的对象
//student对象就是Student类实例化返回的对象
student student = new student();
System.out.println(student.age);//0
student.age=28;
System.out.println(student.age);//28
System.out.println(student.name);//null
student.name="李明";
System.out.println(student.name);//李明
student.study();//在学习
}
}
构造器(构造方法)
类中的构造器也称构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
public class person {
//一个类即使什么都不写,也会有一个构造方法,即类的无参构造
//当存在有参构造器时,若要使用无参构造,无参构造器不可省略
String name;
//无参构造器
public person() {
this.name = "李无参";
}
//有参构造器
public person(String name){
this.name = name;
}
}
public class application {
public static void main(String[] args) {
person p1 = new person();
person p2 = new person("李有参");
System.out.println(p1.name);//李无参
System.out.println(p2.name);//李有参
}
}