Java_从入门到JavaEE_09

news2024/9/22 15:46:49

一、构造方法/构造器

  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. 成员变量与静态变量的区别

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1645622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 第二十章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Transformer详解:从放弃到入门(一)

Transformer由论文《Attention is All You Need》提出,是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构,在自然语言处理领域获得了巨大的成功,在这个…

自动化运维工具---Ansible

一 Puppet Puppet是历史悠久的运维工具之一。它是一种基础架构即代码(laC)工具,使用户可以定义其基础 架构所需的状态,并使系统自动化以实现相同状态。 Puppet可监视用户的所有系统,并防止任何偏离已定义状态的情况。从简单的工作流程自动…

数据仓库基础理论(学习笔记)

数据仓库基础理论 1.数据仓库概念 2.数据仓库为何而来 3.数据仓库主要特征 4.OLTP、OLAP系统 5.数据仓库与数据库的区别 6.数据仓库与数据集市的区别 7.数据仓库分层架构 7.1为什么要分层? 8.ETL、ELT

NFS共享存储服务配置实践

一、NFS 1.NFS定义 NFS(Network File System)网络文件服务:基于TCP/IP传输的网络文件系统协议,NFS服务的实现依赖于RPC(Remote Process Call)远端过程调用:通过使用NFS协议,客户机…

ICode国际青少年编程竞赛- Python-1级训练场-变量入门

ICode国际青少年编程竞赛- Python-1级训练场-变量入门 1、 a 4 Dev.turnRight() Dev.step(a)2、 a 4 Spaceship.step(a) Dev.step(a)3、 a 4 Dev.step(a) Dev.turnLeft() Dev.step(a)4、 a 5 Dev.step(a) Spaceship.step(a) Dev.step(a)5、 a 3 Dev.step(a) Dev.tur…

C语言写的LLM训练

特斯拉前 AI 总监、OpenAI 创始团队成员 Andrej Karpathy 用 C 代码完成了 GPT-2 大模型训练过程:karpathy/llm.c: LLM training in simple, raw C/CUDA (github.com) 下载源码 git clone --recursive https://github.com/karpathy/llm.c.git下载模型 从HF-Mirro…

Burp和Proxifier抓包微信小程序

1、Burp设置代理 2、浏览器下载证书 3、安装证书 4、Proxifier设置代理 5、Proxifier设置Proxification Rule 6、Burp查看抓包数据 打开一个小程序,可以看到WeChatAppEx的流量先经过Proxifier,再经过127.0.0.1:8080到Burp

基于现有语言大模型,定制“人人AI气象”公众号天气助手

最近,月之暗面的Kimi大模型非常受欢迎,尝试用了moonshot(128K)基座模型,通过调用各种公开渠道的API,简易实现了一个天气助手,可以回答天气相关的基础概念、原理、应用等方面的问题,同时也可调用多个插件获取…

音频可视化:原生音频API为前端带来的全新可能!

音频API是一组提供给网页开发者的接口,允许他们直接在浏览器中处理音频内容。这些API使得在不依赖任何外部插件的情况下操作和控制音频成为可能。 Web Audio API 可以进行音频的播放、处理、合成以及分析等操作。借助于这些工具,开发者可以实现自定义的音…

MoonBit 开源之夏重磅来袭!12000元奖金等你来拿!

宣讲视频 MoonBit 开源之夏宣讲视频 关于我们 开源之夏 「开源之夏 (OSPP)」是中科院软件所「开源软件供应链点亮计划」指导下的系列暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区…

JavaScript中Math函数与舍入

立方根 console.log(Math.sqrt(25)); //数学方式25平方根 console.log(25 ** (1 / 2)); //25的0.5次方 console.log(8 ** (1 / 3)); //8的1/3次方计算最大最小值 console.log(Math.max(1, 5, 88, 22, 132)); //返回最大值 console.log(Math.max(1, 5, 88, 22, 132)); //…

【C语言】高质量选择题

目录 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 题目九: 题目十: 题目十一: 题目十二: 题目十…

快捷回复软件让你告别回复慢

可能自己是个客服的原因,一连几天大数据给我推了一个叫“客服宝聊天助手”的软件。用了几天真心觉得好用,能解决我回客户很慢的困扰。如果大家对快捷回复软件感兴趣,可以接着了解哦! 一、减少复制粘贴 传统的客服工作中&#xff…

75.网络游戏逆向分析与漏洞攻防-角色与怪物信息的更新-伪造服务端更新属性消息欺骗客户端

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

【查找算法】之二分查找

一、算法介绍 二分查找,也称为折半查找,是一种在有序数组中查找特定元素的高效算法。对于包含 n 个元素的有序数组,二分查找的步骤如下: 确定搜索范围:首先,将要查找的元素与数组中间的元素进行比较。如果…

基于 Linux 自建怀旧游戏之 - 80 款 H5 精品小游戏合集

1)简介 最近又找到了一款宝藏游戏资源分享给大家,包含 80 款 H5 精品小游戏,都是非常有趣味耐玩的游戏,比如 植物大战僵尸、捕鱼达人、贪吃蛇、俄罗斯方块、斗地主、坦克大战、双人五子棋、中国象棋 等等超级好玩的 H5 小游戏&…

Chrome浏览器命令行妙用:使你的网上冲浪更加无障碍

引言 在当今数字化时代,网络浏览器已成为我们日常生活中不可或缺的工具之一。对于许多人来说,Google Chrome浏览器是首选,不仅因为它的普及度,更因为它提供的丰富功能和高度的可定制性。在Chrome的众多特性中,命令行功…

景源畅信数字:抖音怎么挂橱窗商品?

抖音作为一款短视频分享平台,近年来逐渐融入了电商功能,其中“橱窗”就是商家或个人展示和销售商品的一个重要工具。如何在抖音上挂橱窗商品,成为了众多商家关注的焦点。 一、确保账号资质:在抖音上挂橱窗商品前,需要确…

iOS ------ JSONModel源码

一,JSONModel的基本使用 1,基本使用方法 - (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)err; - (instancetype)initWithData:(NSData *)data error:(NSError **)error; - (instancetype)initWithString:(NSString *)str…