Java_从入门到JavaEE_09

一、构造方法/构造器

  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.mzph.cn/web/7105.shtml

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

相关文章

透明加密软件选哪个好?选择时一定要注意以下三点

透明加密软件哪个好? 这是许多企事业单位在面临数据防泄漏问题时经常思考的问题。随着信息技术的发展,企业的数据安全变得越来越重要。透明加密技术作为一种有效的数据保护手段,被越来越多的企业所采用。然而,市场上的透明加密软…

Django高级表单处理与验证实战

title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单验证逻辑模板渲染安全措施表单测试重定向管理最佳实践 引言: 在Web应用开发中,表单是用户与应用之间进行交互的重要…

OpenHarmony实战开发-请求自绘制内容绘制帧率

对于基于XComponent进行Native开发的业务,可以请求独立的绘制帧率进行内容开发,如游戏、自绘制UI框架对接等场景。 接口说明 开发步骤 说明: 本范例是通过Drawing在Native侧实现图形的绘制,并将其呈现在NativeWindow上 1.定义Ark…

《第一行代码》第二版学习笔记(7)——使用通知和摄像头

文章目录 一、使用通知二、调用摄像头 介绍了通知基于8.0的使用方法和如何调用摄像头拍照 一、使用通知 public void onClick(View v) {if (v.getId() R.id.send_notice){Intent intent new Intent(this,NotificationActivity.class);PendingIntent pi PendingIntent.getAct…

【哈希表】Leetcode 14. 最长公共前缀

题目讲解 14. 最长公共前缀 算法讲解 我们使用当前第一个字符串中的与后面的字符串作比较,如果第一个字符串中的字符没有出现在后面的字符串中,我们就直接返回;反之当容器中的所有字符串都遍历完成,说明所有的字符串都在该位置…

springcloud第4季 springcloud-alibaba之分布式事务seata

一 seata介绍 1.1 seata介绍 1.seata是一款解决分布式事务的解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 2.seata的几种术语:一个中心:全局事务id TC(Transaction Coordinator):事务协调者。负责维护全局和分…

通过iMock学习Jvmsandbox

Jvm-sandbox Jvm-sandbox基于Jvm-sandbox的Mock平台iMockiMock的工程学习iMock怎么写的(sandbox的module应该怎么写) Jvm-sandbox Jvm-sandbox是阿里开源的一款java的沙箱,看网上的介绍在沙箱里你可以做你能想到的奇妙的事情。 基于Jvm-san…

JavaScript百炼成仙自学笔记——16

HTML: 是什么?HyperText Markup Language 既超文本标记语言(www的描述语言) 既平常上网时所看到的网页 为什么?把存放在一台计算机中的文本或是图形与另一台计算机中的文本或图形方便的联系在一起,形成…

Python turtle库 实现 随机彩色文字平面批量输出

# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import turtle import random import turtle as t t.colormode(255) turtle.bgcolor("white") h255 l50#字号 m60#间隔 n500 t.penup() turtle.hide…

redis进阶--IDEA环境

目录 一、解决redis服务器端口问题 二、java环境下使用redis 三、javaSpringt环境下使用redis 四、redis持久化 1、持久化概念 2、redis持久化策略 3、RDB策略 4、AOF策略 5、混合持久化策略 五、redis事务 1、数据库事务 2、redis事务特点 3、redis事务的作用 4…

在模方中已经选好水岸线了,但是点处理瓦块的时候还是提示水岸线没选

答:能部分位置不闭合,双击右键闭合一下,可以强行闭合缺口。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能,支持…

[UDS][OTA] 自定义 IntelHEX (IHEX) format read/write library in C

参考修改 参考github的MIT协议开源项目 ihex 改写的代码 https://gitee.com/liudegui/intelhex-c 修改点: 修改Makefile脚本,支持x86_X64平台和aarch64平台将默认读取行长度设置为16位删除与ihex和bin之间的转换无关的示例代码 十六进制描述 HEX格式…

车牌检测识别功能实现(pyqt)

在本专题前面相关博客中已经讲述了 pyqt + yolo + lprnet 实现的车牌检测识别功能。带qt界面的。 本博文将结合前面训练好的模型来实现车牌的检测与识别。并用pyqt实现界面。最终通过检测车牌检测识别功能。 1)、通过pyqt5设计界面 ui文件如下: <?xml version="1…

TC3xx MTU概述(2)

目录 1.概述 2.如何配置NDT 3.小结 1.概述 上篇TC3xx MTU概述(1)-CSDN博客我们讲解了MTU基本功能和MBIST基本概念&#xff0c;接下来我们继续讲解MTU如何配置NDT算法。 2.如何配置NDT 前面聊了那么多概念&#xff0c;我们还是来看看如何配置MTU来实现NDT。 MTU寄存器分为…

liunx服务器部署Llama2大模型

模型&#xff1a;Llama2-chat-13B-Chinese-50W 01 下载安装 Llama2 模型 Huggingface在国内是访问不了的&#xff0c;需要使用代理。在这里推荐使用 clash-for-liunx 配置代理。 安装 git-lfs&#xff0c;用于大文件下载 sudo apt-get install git-lfs git lfs installHuggi…

Transformer 解析 超级详细版

推荐学习视频 汉语自然语言处理-从零解读碾压循环神经网络的transformer模型(一)- 注意力机制-位置编码-attention is all you need_哔哩哔哩_bilibili 目录 首先下transformer和LSTM的最大区别是什么&#xff1f; 1.positional \ encoding, 即位置嵌入(或位置编码); 2 自注…

AI神助攻!小白也能制作自动重命名工具~

我们平时从网上下载一些文件&#xff0c;文件名很多都是一大串字母和数字&#xff0c;不打开看看&#xff0c;根本不知道里面是什么内容。 我想能不能做个工具&#xff0c;把我们一个文件夹下面的所有word、excel、ppt、pdf文件重命名为文件内容的第一行。 我们有些朋友可能不会…

全国33个省228189个矿产地位置分布数据,含经纬度坐标/CSV格式

全国矿产地分布&#xff08;2021版&#xff09; 数据来源&#xff1a; 全国矿产地数据库2021版 (ngac.org.cn) http://data.ngac.org.cn/mineralresource/index.html 数据获取方法&#xff1a;树谷资料库大全&#xff08;2024年4月19日更新&#xff09; 进入网站后&#xf…

【华为】路由策略小实验

【华为】软考中级-路由策略实验 实验需求拓扑配置AR1AR2需求1需求2 AR3 检验 实验需求 1、让 R3 可以学到R1的 192.168.10.0/24和192.168.20.0/24的 路由&#xff0c;不能学到192.168.30.0/24。 2、让 R1可以学到 R3 的 172.16.20.0/24和172.16.30.0/24的路由&#xff0c;不能…

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

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