Java_从入门到JavaEE_09

一、构造方法/构造器

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

  2. 特点:

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

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

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

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

  4. 底层逻辑:

java 复制代码
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. 获取金额
java 复制代码
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. 成员变量与静态变量的区别

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

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

相关推荐
多多*1 小时前
分布式系统中的CAP理论和BASE理论
java·数据结构·算法·log4j·maven
sg_knight1 小时前
Docker 实战:如何限制容器的内存使用大小
java·spring boot·spring·spring cloud·docker·容器·eureka
合作小小程序员小小店2 小时前
web网页开发,在线考勤管理系统,基于Idea,html,css,vue,java,springboot,mysql
java·前端·vue.js·后端·intellij-idea·springboot
随便叫个啥呢3 小时前
java使用poi-tl模版+vform自定义表单生成word,使用LibreOffice导出为pdf
java·pdf·word
面向星辰4 小时前
扣子开始节点和结束节点
java·服务器·前端
烤麻辣烫5 小时前
黑马程序员苍穹外卖(新手)Day1
java·数据库·spring boot·学习·mybatis
失散135 小时前
分布式专题——51 ES 深度分页问题及其解决方案详解
java·分布式·elasticsearch·架构
FreeBuf_5 小时前
思科CCX软件曝高危RCE:攻击者可利用Java RMI和CCX Editor获取root权限
java·网络·安全
_esther_5 小时前
【字符串String类大集合】构造创建_常量池情况_获取方法_截取方法_转换方法_String和基本数据类型互转方法
java
lkbhua莱克瓦245 小时前
Java基础——集合进阶5
java·开发语言·集合·泛型