类与对象的关系
类与对象的关系
-
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一 个具体的事物
动物、植物、手机、电脑....
Person类、 Pet类、Car类等, 这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为
-
对象是抽象概念的具体实例
张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。
能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念.
创建与初始化对象
-
使用new关键字创建对象
-
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。
-
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
a. 必须和类的名字相同
b. 必须没有返回类型,也不能写void
-
构造器必须要掌握
==============================================================================
代码演示
创建Student类
package com.tea.Demo02;
//学生类
public class Student {
//属性:字段
String name;
int age;
//方法
public void study(){
System.out.println(this.name+"同学在学习");
}
}
在主类中调用方法
package com.tea.Demo02;
public class Application {
public static void main(String[] args) {
//类:抽象的,实例化
//类实例化后会返回一个自己的对象
//对象
Student xiaoming = new Student();
Student xiaohong = new Student();
System.out.println(xiaohong.name); //默认null
System.out.println(xiaohong.age); //默认0
//仅对xiaohong的属性赋值
xiaohong.name = "小红";
xiaohong.age = 23;
System.out.println(xiaohong.name); //xiaohong
System.out.println(xiaohong.age); //23
//不对xiaoming的属性赋值,则一切属性默认不变
System.out.println(xiaoming.name); //默认null
System.out.println(xiaoming.age); //默认0
xiaohong.study(); //小红同学在学习
xiaoming.study(); //null同学在学习
}
}
==============================================================================
构造器的使用
无参构造代码演示---Person类
package com.tea.Demo02;
//Person类中构造无参方法
public class Person {
//一个类即使什么都不写,也会存在一个方法
//显示的定义构造器
String name;
//实例化初始值
//1.使用new关键字,本质是在调用构造器
//2.用来初始化值
public Person() {
this.name = "茶茶"
}
}
无参构造代码演示---main方法的调用
package com.tea.Demo02;
public class Application {
public static void main(String[] args) {
//实例化了一个对象
Person person = new Person();
System.out.println(person.name); //茶茶
}
}
==============================================================================
有参构造的代码演示---Person类
package com.tea.Demo02;
public class Person {
//一个类即使什么都不写,也会存在一个方法
//显示的定义构造器
String name;
//实例化初始值
//1.使用new关键字,本质是在调用构造器
//2.用来初始化值
public Person() {
}
//有参构造:一旦定义有参构造,无参构造就必须要显示定义
public Person(String name) {
this.name = name;
}
}
有参构造的代码演示---main方法
package com.tea.Demo02;
public class Application {
public static void main(String[] args) {
//实例化了一个对象
Person person = new Person("茶茶");
System.out.println(person.name); //茶茶
}
}
==============================================================================
总结
构造器的特点:
- 和类名相同
- 没有返回值
作用:
- new本质在调用构造方法
- 初始化对象的值
注意点:
- 定义有参构造之前,如果想使用无参构造,必须显示定义一个无参构造
快捷键:
- 构造有参与无参:Alt+Insert
- new对象实例化:Alt+回车+回车
this.name(1)= name(2):两个name表面一样,但是(1)来自当前类,(2)来自参数传进来的值
==============================================================================
构造思维图
==============================================================================
小节类与对象
- 类与对象:
- 类是一个模板:抽象;对象是一个具体的实例
- 方法:
- 定义与调用
- 对应的引用:
- 引用类型:基本类型(8个)
- 对象是通过引用来操作:栈--->堆
- 属性:字段Field 成员变量
-
默认初始化:
- 数字:0,0.0
- char:u0000
- boolean:false
- 引用:null
修饰符 属性类型 属性名 = 属性值
- 对象的创建与使用
- 必须使用new关键字创造对象。构造器 Person chacha = new Person
- 对象的属性:chacha.name
- 对象的方法:chahca.sleep()
- 类:
- 静态的属性
- 动态的行为
- Java三大特征:封装、继承、多态