概念
对象是一种特殊的数据结构,可以用来记住一个事物的数据,从而代表该事物,可以理解为一个模板表,总而言之万物皆对象,比如一个人、一个物体等。
怎么创建对象
先设计对象的模板,也就是对象的设计图:类。
例如:我们需要创建一个明星Star类,设计明星有哪些特征。
通过new关键字,每new一次类就得到一个新的对象。
对象执行原理
方法区:存储类文件
栈内存:方法的执行(先进后出)
堆内存:放在堆中
类的基本语法
构造器
无参构造器
构造器:是一种特殊方法,不能写返回值类型,名称必须是类名,构造器也可以重载
有参构造器
特点
创建对象时,对象会去调用构造器。
应用场景
创建对象时,同时完成对对象成员变量(属性)的初始化赋值。
注意事项
- 类默认就自带了一个无参构造器
- 如果为类定义了有参数构造器,类默认的无参数构造器就没有了,还想用无参数构造器,就必须自己手写一个无参数构造器出来。
THIS关键字
概念
this就是一个变量,可以用在方法中,来拿到当前对象,哪个对象调用这个方法,this就拿到哪个对象。
应用场景
this主要用来解决:变量名称冲突问题的。
封装
要求
类就是一种封装,但是要合理的隐藏,合理的暴露(比如汽车:就隐藏电路等内容,暴露轮胎等)
操作
如何合理隐藏:使用private关键字修饰成员变量,就只能在本类中被直接访问,其他任何地方不能直接访问。
如何合理暴露:使用public修饰(公开)的get和set方法合理暴露成员变量的取值和赋值。
JAVABEAN
概念
是一种特殊类,也叫实体类,类中要满足如下需求:
- 类中的成员变量全部私有,并提供public修饰的getter/setter方法
- 类中需要提供一个无参数构造器,有参数构造器可选
应用场景
STATIC关键字
修饰成员变量
类名.静态变量(推荐),对象.静态变量(不推荐)
对象.实例变量
修饰成员方法
如果这个方法只是为了做一个功能且不需要直接访问对象的数据,那么就定义为静态方法;
如果这个方法是对象的行为,需要访问对象的数据,这个方法必须定义成实例方法;
应用场景
做工具类,比如验证码:(VerifyCodeUtil)工具类中的方法都是一些静态方法,每个方法用来完成一个功能,以便供给开发人员直接使用,可以提高了代码复用;调用方便,提高开发效率。
注意事项
静态方法中可以直接访问静态成员,不可以直接访问实例成员。
实例方法中既可以直接访问静态成员,也可以直接访问实例成员。
实例方法中可以出现this关键字,静态方法中不可以出现this关键字的。