一、构造方法/构造器
含义:和new一起是创建对象的功能
特点:
- 与类名相同的方法
- 没有返回项
注意:
- 当类中没有写构造方法时,系统会默认添加无参构造(无参数的构造方法)
- 构造方法可以重载的
有参构造好处:创建对象时,把数据赋值给该对象
经验:写了有参构造,自己把无参构造写上
底层逻辑:
public class Person{ //注意:这种不是构造方法,是成员方法 public void Person(){} }
二、this
- 含义:this表示调用该方法的对象
- 作用:
- this.属性:调用本对象的成员属性
- this.方法:调用本对象的成员方法
- this():在构造方法的第一句调用另外一个构造方法
三、private
理解:private是访问修饰符的一种,表示私有
扩展:访问修饰符可以修饰属性和方法
作用:
- 修饰属性:该属性不能在类的外面使用
- 修饰方法:该方法不能在类的外面使用
应用场景:
- 不想让外界直接调用的属性就使用private修饰
- 不想让外界直接调用的方法就使用private修饰
四、封装
知识点:封装
概念:将属性封装到对象的内部,通过get/set方法去操作属性
步骤:
- 私有化属性
- .添加get(获取)/set(设置)方法
好处:
- 将属性封装到对象的内部,外界不能直接操作属性
- 必须通过get/set方法去操作属性
- 可以在get/set方法中做额外的功能
经验:属性都必须封装
案例:模拟银行用户操作金额的过程
分析:怎么操作金额?
- 设置金额
- 获取金额
public class Test { public static void main(String[] args) { User user = new User("1445584980", "123123", 2000); user.setMoney(user.getMoney() - 200); System.out.println(user.getMoney()); } } import java.time.LocalDateTime; public class User { private String username; private String password; private double money; public User() { } public User(String username, String password, double money) { this.username = username; this.password = password; this.money = money; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public void setMoney(double money){ //额外的功能 double num = money - this.money; System.out.println(LocalDateTime.now() + "设置了金额:" + num); this.money = money; } public double getMoney(){ return this.money; } }
经验:操作属性 --> 设置和获取
五、分包
理解:最基本的功能就是防止类的重名
项目中的功能:做类的分类(一个项目有成千上万的类,需要分包做管理)
com.lv.utils/tools – 工具类的包
com.lv.pojo/entity/vo – 实体类的包
com.lv.map/mapper – 操作数据库类的包
com.lv.biz/service – 操作业务类的包
命名规范:网络倒序
com/net/cn.公司名.项目名/功能名
六、static
理解:静态的
作用: 1.静态属性
2.静态方法
3.静态代码块
static修饰属性
类加载到方法区时,JVM会扫描该类的所有属性
并把静态属性加载到静态区中,静态属性属于类属性,
该类所有的对象都共享该属性
静态属性直到项目结束时才会被回收
注意:静态属性使用类名调用
应用场景:该类每个对象共享的属性就用static修饰
底层逻辑:
修饰方法
属于类方法,直接用类名调用
应用场景:工具类
静态代码块
静态代码块是类加载到方法区时才会被调用,该代码块只能初始化静态变量
代码块是创建对象时优先于构造方法调用,该代码块可以初始化成员变量和静态变量
构造方法是创建对象时调用,该方法可以初始化成员变量和静态变量
成员变量与静态变量的区别
成员变量:属于对象的变量,每个对象独享一份
静态变量:属于类的变量,每个对象都共享一份