Java_从入门到JavaEE_09

发布于:2024-05-10 ⋅ 阅读:(27) ⋅ 点赞:(0)

一、构造方法/构造器

  1. 含义:和new一起是创建对象的功能

  2. 特点:

    1. 与类名相同的方法
    2. 没有返回项
  3. 注意:

    1. 当类中没有写构造方法时,系统会默认添加无参构造(无参数的构造方法)
    2. 构造方法可以重载的

    有参构造好处:创建对象时,把数据赋值给该对象

    经验:写了有参构造,自己把无参构造写上

  4. 底层逻辑:

    在这里插入图片描述

public class Person{
 //注意:这种不是构造方法,是成员方法
 public void Person(){}
}

二、this

  1. 含义:this表示调用该方法的对象
  2. 作用:
  3. this.属性:调用本对象的成员属性
  4. this.方法:调用本对象的成员方法
  5. this():在构造方法的第一句调用另外一个构造方法

三、private

  1. 理解:private是访问修饰符的一种,表示私有

  2. 扩展:访问修饰符可以修饰属性和方法

  3. 作用:

    1. 修饰属性:该属性不能在类的外面使用
    2. 修饰方法:该方法不能在类的外面使用
  4. 应用场景:

    1. 不想让外界直接调用的属性就使用private修饰
    2. 不想让外界直接调用的方法就使用private修饰

四、封装

  1. 知识点:封装

  2. 概念:将属性封装到对象的内部,通过get/set方法去操作属性

  3. 步骤:

    1. 私有化属性
    2. .添加get(获取)/set(设置)方法
  4. 好处:

    1. 将属性封装到对象的内部,外界不能直接操作属性
    2. 必须通过get/set方法去操作属性
    3. 可以在get/set方法中做额外的功能
  5. 经验:属性都必须封装

  6. 案例:模拟银行用户操作金额的过程

    分析:怎么操作金额?

    1. 设置金额
    2. 获取金额
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;
	}
}

经验:操作属性 --> 设置和获取

五、分包

  1. 理解:最基本的功能就是防止类的重名

  2. 项目中的功能:做类的分类(一个项目有成千上万的类,需要分包做管理)

    com.lv.utils/tools – 工具类的包

    com.lv.pojo/entity/vo – 实体类的包

    com.lv.map/mapper – 操作数据库类的包

    com.lv.biz/service – 操作业务类的包

  3. 命名规范:网络倒序

    com/net/cn.公司名.项目名/功能名

六、static

​ 理解:静态的
​ 作用:

​ 1.静态属性

​ 2.静态方法

​ 3.静态代码块

  1. static修饰属性

    类加载到方法区时,JVM会扫描该类的所有属性

    并把静态属性加载到静态区中,静态属性属于类属性,

    该类所有的对象都共享该属性

    静态属性直到项目结束时才会被回收

    注意:静态属性使用类名调用

    应用场景:该类每个对象共享的属性就用static修饰

    底层逻辑:

    在这里插入图片描述

  2. 修饰方法

    属于类方法,直接用类名调用

    应用场景:工具类

  3. 静态代码块

    静态代码块是类加载到方法区时才会被调用,该代码块只能初始化静态变量

    代码块是创建对象时优先于构造方法调用,该代码块可以初始化成员变量和静态变量

    构造方法是创建对象时调用,该方法可以初始化成员变量和静态变量

  4. 成员变量与静态变量的区别

    成员变量:属于对象的变量,每个对象独享一份

    静态变量:属于类的变量,每个对象都共享一份


网站公告

今日签到

点亮在社区的每一天
去签到