2020/05/16 方法 类和对象
类和对象的关系
类是相关属性和行为的集合,是对一类事物的描述
对象是一类事物的实例,是具体的
类是对象的模板,对象是类的实例
对象创建
1.导包
import 包名称.类名称
如果使用的类在同一个包下,可以不用导包
2.创建
new 类名称() -> 创建新对象
类名称 对象名 = new 类名称();-> 对象名这个引用指向新建的对象
3.使用
对象名.成员变量名
对象名.成员方法名(参数)
若成员变量没有赋值,那么将会有一个默认值,规则和数组一样
注意:一个.java文件可以有很多类,但是public权限只能有一个,且.java的文件名必须是public类的类名!!!
对象的内存图
成员方法在堆中存放的为地址值,具体方法在方法区中
成员变量的值直接存放在堆中
运行程序时,方法入栈执行程序
理解:方法区存放设计图,堆中存放原材料,栈为工作台
一个对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-epyaLHEa-1589642839228)(C:\Users\10145\AppData\Roaming\Typora\typora-user-images\image-20200516160131222.png)]
两个对象使用同一个方法的内存
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HB1d2iwZ-1589642839230)(C:\Users\10145\AppData\Roaming\Typora\typora-user-images\image-20200516161054576.png)]
类和对象的引用
多个引用,一个对象
类名称 新对象名 = 引用对象名 将引用对象名的地址赋给新对象
对象就像 “房产”, 引用就像"房产证"
房产证的复印件可以有多张,但是真正的"房产" 只有这么一处
一个对象,多个引用
一个引用同时只能指向一个对象,如果引用指向新的对象,那么原对象将没有任何手段控制,没意义。
继承
class 新类 extends 继承类{};
新类也具备了继承类的属性
注意事项:写继承的时候发现
一个项目只能有一个main方法 作为程序入口
构造方法
构造方法和类名一样,无返回类型,实例化对象时必然调用构造方法
通过一个类创建一个对象,这个过程叫做实例化
笔试题目隐式构造方法:如果没有为一个类编写构造方法,则系统会为该类提供一个默认的且无参的构造方法。
构造方法和方法一样也可以重载。
构造方法作用:1.构造出一个类的实例
2.对构造出来的一个类的实例初始化
this的用法
this指的是当前对象
this关键字总是指向调用该方法的对象
在方法中想要调用对象的变量,但是和自身方法中变量重名(如要正常原本需要使用其他变量名),但this.变量可以代表调用对象的变量
this调用其他构造方法:如果要在一个调用方法中,调用另一个构造方法(重构),可以使用this(变量,…)
使用时错误写法:name = this.name
实为 this.name = name
在构造方法中调用另一个构造方法this(变量,变量,…),而非一个变量一个变量地this();
this.name实为
this.name = name`
在构造方法中调用另一个构造方法this(变量,变量,…),而非一个变量一个变量地this();