JAVA类和对象
[JAVA的类和对象]
类是一个抽象的概念。
对象则是能用来实现具体功能。
- 例如:
Scanner 是类,sc是对象。Scanner sc=new Scanner(System.in)
我们一般通过sc.xxx来实现输入。
类
- 类定义了成员变量和成员方法
- 类是一种引用数据类型
-
使用
-
1.导包
-如果使用的目标类,和当前类(含有main方法)位于一个包下的,那么可以省略导包不写,否则需要使用import导包。 -
2.创建
类名称 对象名=new 类名称(); -
3.使用
成员变量
- 成员变量如果没有赋值,本身会有一个初始值。
使用
- 对象名.成员变量名
与局部变量的对比
- 定义位置不同
- 局部变量定义在方法内部
- 成员变量直接定义在类内部,方法外部
- 内存中位置不同
- 局部变量在栈内存中(Stack)
- 成员变量在堆内存内(Heap)
- 生命周期不同
- 局部变量,随着方法的进栈而出现,随着方法的出栈而消失
- 成员变量,随着对象被创建而出现,随着对象被JVM回收而消失
- 默认值不同
- 局部变量没有默认值,必须赋值后使用。
- 成员变量,没赋值会有初始值。
成员方法
- 没有static才为成员方法,有就是普通方法。
使用
- 对象名.方法名
-
-
private关键字
- 一旦用private关键字对成员进行修饰,那么除了本类范围外就不能直接使用了
-
那么便需要间接使用方法
Setter方法
- 专门定义一个成员方法来设置成员变量的数据。
- 格式
public void set(成员变量名)(){//一定要用void }
Getter方法
专门定义一个成员方法来获取成员变量的数据- 格式
public (成员变量的数据类型) get(成员变量名)(){ return 成员变量 }
- 注意
如果基本数据类型是boolean,那么getXxx 改成isXxx
-
this关键字
- 在类中如果局部变量和成员变量重名了,方法中会根据“就近原则”使用局部变量
- 我们就可以使用this关键字来区分局部变量和成员变量
- this关键字其实代表的是“当前对象”,谁调用的方法,谁就是this
-
构造方法
- 构造方法就是专门用来创建对象的方法,当通过new关键字创建对象时,其实就是在调用构造方法。
- 重载跟普通方法一致。
- 如果类中没有构造方法,自动创建一个无参数的啥都不做的构造方法,但如果有一个,就不再自动创建无参数的。
-
格式
public (构造方法名)(参数类型 参数名称){ 方法体 return//通常省略return }
注意
- 构造方法不能写返回值,连void都不能写
- 构造方法的名称必须和类名称完全一样,大小写也要一样
-
标准POJO类
- 所有成员变量都需要使用private关键字私有化。
- 为每一个成员变量编写一对儿Getter Setter方法
- 编写一个无参数的构造方法
- 编写一个全参数的构造方法
对象
- 对象本身是一个引用类型。(所存的本质应该是地址)
更详细的理解请点击 图解 - 类 对象2=对象1(本质是将对象1的地址复制给对象2)
快捷键
- alt+shift+r 快捷替换对象名。