类与对象:
- 类:是对象共同特征的描述
- 对象:真实存在的具体东西
如何定义类:
public class 类名{
成员变量
成员方法
构造器
代码块
内部类
}
如何得到类的对象:
类名 对象名 - new 类名();
如何使用对象:
- 访问属性:对象名.成员变量
- 访问行为:对象名.方法名(...)
封装原则:
对象代表什么,就得封装对应的数据,并提供数据对应的行为
构造方法:在创建对象的时候给成员变量赋值
- 空参构造,没有定义构造方法时系统会默认提供,如果定义了有参构造系统不会提供
- 带参构造
标准的JavaBean类:
- 类名需要见名知意
- 成员变量使用private修饰
- 至少提供两个构造方法(无参构造和带全部参数的构造方法)
- 成员方法(提供每一个成员变量对应的setXxx()/getXxx();如果还有其他行为,也需要写上)
IDEA快捷方式:
- alt+ins(或alt+fn+ins)键选择Constructor生成构造函数,Getter生成getXxx()函数,Setter生成setXxx()函数
- ptg插件,右键
创建一个对象过程:
- 加载class文件
- 申明局部变量
- 在堆内存中开辟一个空间
- 默认初始化
- 显示初始化
- 构造方法初始化
- 将堆内存中的地址赋值给左边的局部变量
成员变量和局部变量的区别:
- 类中位置不同:成员变量类中,方法外;局部变量方法上、方法生命上
- 初始化值不同:成员变量有默认初始化值;局部变量没有,使用前需要完成赋值
- 内存位置不同:成员变量在堆内存;局部变量在栈内存
- 生命周期不同:成员变量随对象创建而存在,随对象的消失而消失;局部变量随方法调用而存在,随方法运行结束而消失
- 作用域:成员变量整个类中有效;局部变量当前方法中有效
键盘录入:
- nextInt():接收整数 (接收到空格、制表符或回车后不会继续录入)
- nextDouble():接收小数 (接收到空格、制表符或回车后不会继续录入)
- next():接收字符串(接收到空格、制表符或回车后不会继续录入)
- nextLine():(回车后不会继续录入)(尽量不用与前三个混用)