类与对象的创建
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物.(例如狗这一个抽象的概念不能代表某一只具体的狗)
对象是抽象概念的具体事例
- 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例.
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念.
创建和初始化对象
-
使用new关键字创建对象
-
使用new关键字创建的时候,除了分配内存空间之外,还会给 创建好的对象 进行 默认的初始化 以及对类中 构造器 的调用。
-
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
-
构造器必须要掌握
一个类即使什么都不写,它也会存在一个方法
构造器详解
IDEA快捷键 alt+insert 创建构造器
参考代码(第一个是总部,后面两个都是分部)
总调用分
package kuangstudy.oop;
// 类:抽象的
// 类实例化后会返回一个自己的对象!
// Student对象就是一个student类的具体实例
public class Application {
// 一个项目中只能有一个main方法
public static void main(String[] args) {
// new实例化了一个对象
// 自定义的Student类声明Student对象
Student zhala = new Student();
Student guangrong = new Student();
// 为自定义的Student对象所携带的属性赋值
zhala.name = "zhala";
zhala.age = 18;
guangrong.name = "guangrong";
guangrong.age = 18;
// 打印出Student对象中的属性值
System.out.println(zhala.name);
System.out.println(zhala.age);
System.out.println(guangrong.name);
System.out.println(guangrong.age);
System.out.println("================");
// 自定义的Person类声明Person对象
// Person person = new Person();
// System.out.println(person.name);
Person person = new Person("kuangstudy");// 自动匹配单参的方法并声明对象
Person person1 = new Person("张裕",21);// 自动匹配双参的方法并声明对象
// 打印值
System.out.println(person.name);
System.out.println("姓名:"+person1.name+"\t"+"年龄:"+person1.age);
}
}
package kuangstudy.oop;
// Student类
public class Student {
// 属性:字段
String name;// null
int age;// 0
public void study(){
System.out.println(this.name+"在学习");
}
}
package kuangstudy.oop;
public class Person {
// 一个类即使什么都不写,它也会存在一个方法
// 显示的定义构造器
String name;
int age;
// 实例化初始值
// 1.使用new关键字,本质是在调用构造器
// 2.用来初始化值
public Person(){
//this.name = "张裕";
}
// 有参构造:一旦定义了有参构造,无参就必须显示定义
public Person(String name){
this.name = name;
}
// alt+insert(IDEA快捷键)
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
/*
* 构造器:
* 1.和类名相同
* 2.没有返回值
* 作用:
* 1.new 本质在调用构造方法
* 2.初始化对象的值
* 注意点:
* 1.定义有参构造之后,如果想使用无参构造,必须显示的定义一个无参的构造
* */