当前位置: 首页 > news >正文

Java基础学习(5)

Java基础学习

  • 一 面向对象
    • 1.1 介绍对象
    • 1.2 设计对象并使用
      • 1.2.1定义类的补充注意事项
    • 1.3 封装
    • 好处:
    • 1.3 private关键字
    • 1.4 this关键字
    • 1.5 构造方法
  • 构造方法的注意事项:
    • 1.6 标准的JavaBean
    • 1.7 对象内存图
      • 1.7.1 一个对象的内存图
      • 1.7.2 两个对象内存图
      • 1.7.两个引用指向同一个对象
    • 1.8 基本数据类型和引用数据类型
      • 1.8.1 基本数据类型
      • 1.8.2 引用数据类型
    • 1.9 this的内存原理
      • 键盘输入

一 面向对象

1.1 介绍对象

简单理解:

  • 拿东西过来做对应的事情
  • 获取对象并使用

1.2 设计对象并使用

  • :是对象共同特征的描述
  • **对象:**是真实存在的具体东西
  • 在这里插入图片描述
    如何得到类对象

类名 对象名 = new 类名():
Phone p = new Phone();

如何适用对象

  • 访问属性:对象名.成员变量
  • 访问行为:对象名.方法名(.......)
    在这里插入图片描述

1.2.1定义类的补充注意事项

  • 用来描述一类事物的类,专业叫做: Javabean类在Javabean类中,是不写main方法的。
  • 在以前,编写main方法的类,叫做测试类我们可以在测试类中创建javabean类的对象并进行赋值调用
  1. 类名首字母建议大写,需要见名知意,驼峰模式
  2. 1个Java文件中可以定义多个cass类,目只能一个类是public修饰,而且pulic修饰的类名必须成为代码文件名实际开发中建议还是一个文件定义一个class类
  3. 成员变量的完整定义格式是:修饰符 数据类型 变量名称 =初始化值;,一般无需指定初始化值,存在默认值

1.3 封装

如何正确的社会及对象的属性和方法
对象代表什么,就得封装对应的数据,并提供数据对应的行为
例如:人关门这一动作,关门这个动作行为是属于的,因为人只是给了门一个作用力,导致门自己关上了

好处:

  • 让编程变得很简单,有什么事,找对象,调方法就行。
  • 降低我们的学习成本,可以少学、少记,或者说压根不用学,不用记对象有哪些方法,有需要时去找就行

1.3 private关键字

  • 是一个权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 被private修饰的成员只能在本类中才能访问
public class GirlFriend {private String name;private int age;private String gender;
}

会使得数据无法改变,我们应该用以下代码实现对数据的修改判断

set方法: 给成员变量赋值
get方法: 对外提供成员变量的值

public class GirlFrend {public int age;//作用: 给成员变量name进行赋值的public void setAge(int a){if(a>=18 && a<50){age = a;}else{System.out.println("非法数据");}}//作用:对外提供name属性的public int getAge(){return age;}
}

1.4 this关键字

作用:

可以区别成员变量和局部变量

就近原则:

这个变量你谁近就听谁的

public class GirlFriend {	//成员变量private int age;public void method(){//局部变量int age = 10;//谁近听谁的System.out.println(age);//先找成员变量System.out.println(this.age);}}

1.5 构造方法

格式:
在这里插入图片描述
特点:

1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值 (不能由retrun带回结果数据)

执行时机

1.创建对象的时候由虚拟机调用,不能手动调用构造方法
2.每创建一次对象,就会调用一次构造方法

构造方法的注意事项:

  • 构造方法的定义
    1 .如果没有定义构造方法,系统将给出一个默认的
    2.无参数构造方法如果定义了构造方法,系统将不再提供默认的构造方法
  • 构造方法的重载
    带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
  • 推荐的使用方式
    无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法

1.6 标准的JavaBean

  • 类名需要见名知意
  • 成员变量使用private修饰
  • 提供至少两个构造方法
    1.无参构造方法
    2.带全部参数的构造方法
  • 成员方法
    1.提供每一个成员变量对应的setXxx()/getXxx()
    2.如果还有其他行为,也需要写上
public class User {private String Username;private  String Password;private String Email;private int age;public User() {}public User(String Username, String Password, String Email, int age) {this.Username = Username;this.Password = Password;this.Email = Email;this.age = age;}/*** 获取* @return Username*/public String getUsername() {return Username;}/*** 设置* @param Username*/public void setUsername(String Username) {this.Username = Username;}/*** 获取* @return Password*/public String getPassword() {return Password;}/*** 设置* @param Password*/public void setPassword(String Password) {this.Password = Password;}/*** 获取* @return Email*/public String getEmail() {return Email;}/*** 设置* @param Email*/public void setEmail(String Email) {this.Email = Email;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}

快捷键:

  1. alt+inset 进行创建
  2. 添加插件ptg(推荐很香)
    点击settings在这里插入图片描述
    在这里插入图片描述

右键点击JavaBean
在这里插入图片描述

1.7 对象内存图

1.7.1 一个对象的内存图

  1. 加载class文件
  2. 申明局部变量
  3. 在堆内存中开辟一个空间
  4. 默认初始化
  5. 显示初始化
  6. 构造方法初始化
  7. 将堆内存中的地址值赋值给左边的局部变量
    -

1.7.2 两个对象内存图

在这里插入图片描述

1.7.两个引用指向同一个对象

在这里插入图片描述

如果改变stu1里面的值,那么stu2也会改变,因为赋值的时候,是把stu1里面的地址赋值给了stu2,所以他们指向的是同一个空间

1.8 基本数据类型和引用数据类型

1.8.1 基本数据类型

在变量中存储的真实数据

在这里插入图片描述

1.8.2 引用数据类型

存储的是数据的地址,可以通过地址去访问

在这里插入图片描述

1.9 this的内存原理

this的本质: 代表方法调用者的地址
this的作用:区分成员和局部变量
在这里插入图片描述

键盘输入

键盘录入

第一套体系:
nextInt(); 接收整数
nextDouble();接收小数
next();接收字符串
遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了

第二套体系:
nextLine();接收字符串
可以接收空格,制表符,遇到回车才停止接受数据

相关文章:

Java基础学习(5)

Java基础学习一 面向对象1.1 介绍对象1.2 设计对象并使用1.2.1定义类的补充注意事项1.3 封装好处:1.3 private关键字1.4 this关键字1.5 构造方法构造方法的注意事项:1.6 标准的JavaBean1.7 对象内存图1.7.1 一个对象的内存图1.7.2 两个对象内存图1.7.两个引用指向同一个对象1.8…...

SpringBoot接口 - 如何生成接口文档之Swagger技术栈

SpringBoot开发Restful接口&#xff0c;有什么API规范吗&#xff1f;如何快速生成API文档呢&#xff1f;Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲&#xff0c;Swagger 就是将项目中所有&#xff08;想要暴露的&#xff09;接口展现在页面上&am…...

JavaScript execCommand函数

execCommand函数命令execCommand方法是执行一个对当前文档&#xff0c;当前选择或者给出范围的命令。处理Html数据时常用如下格式&#xff1a;document.execCommand(sCommand[,交互方式, 动态参数]) &#xff0c;其中&#xff1a;sCommand为指令参数&#xff08;如下例中的”2D…...

2023年安徽省中职网络安全跨站脚本攻击

B-4&#xff1a;跨站脚本攻击 任务环境说明&#xff1a; √ 服务器场景&#xff1a;Server2125&#xff08;关闭链接&#xff09; √ 服务器场景操作系统&#xff1a;未知 √ 用户名:未知 密码&#xff1a;未知 1.访问服务器网站目录1&#xff0c;根据页面信息完成条件&am…...

Jmeter之常用断言总结篇

在使用Jmeter进行性能测试或者接口自动化测试工作中&#xff0c;经常会用到的一个功能&#xff0c;就是断言。断言是在请求的返回层面增加一层判断机制&#xff0c;因为请求成功了&#xff0c;并不代表结果一定正确&#xff0c;因此需要判断机制提高测试准确性。本文主要介绍6种…...

Elasticsearch:如何在 Elastic 中实现图片相似度搜索

作者&#xff1a;Radovan Ondas 在本文章&#xff0c;我们将了解如何通过几个步骤在 Elastic 中实施相似图像搜索。 开始设置应用程序环境&#xff0c;然后导入 NLP 模型&#xff0c;最后完成为你的图像集生成嵌入。 Elastic 图像相似性搜索概览 >> 如何设置环境 第一步…...

一起Talk Android吧(第五百二十三回:获取位置信息经验总结)

文章目录 整体概述位置权限与蓝牙权限综合使用特殊机型的使用方法官方建议各位看官们大家好,上一回中咱们说的例子是"如何有效地获取位置权限",这一回中咱们说的例子是" 获取位置信息经验总结"。闲话休提,言归正转, 让我们一起Talk Android吧! 整体概…...

发光立方体效果 html+css

一.话不多&#xff0c;看效果 css简单创意特效&#xff0c;关注我看更多简单创意特效~ 二.实现&#xff08;附完整代码&#xff09; 定义标签&#xff1a; <div class"container"><div class"q1"></div><div class"h2"&…...

READ: Large-Scale Neural Scene Rendering for Autonomous Driving

READ: Large-Scale Neural Scene Rendering for Autonomous Driving &#xff1a;面向自动驾驶的大规模神经场景绘制 门卷积 https://www.jianshu.com/p/09fc8490104d https://blog.csdn.net/weixin_44996354/article/details/117409438摘要&#xff1a;论文提出了一种大规模神…...

Linux环境C语言开发基础

C语言是一门面向过程的计算机编程语言&#xff0c;与C、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言诞生于美国的贝尔实验室&#xff0c;由丹…...

string类(上)

string类&#xff08;上&#xff09;1.标准库中的string类2.string类对象的常见构造①string()②string(const char* s)③string(size_t n,char c)④string(const string&s)⑤string(const string& str,size_t pos,size_t lennpos)⑥string&#xff08;const char* s,s…...

ElasticSearch快速入门详解(亲测好用,强烈推荐收藏)

3.快速入门 接下来快速看下elasticsearch的使用 3.1.概念 Elasticsearch虽然是一种NoSql库&#xff0c;但最终的目的是存储数据、检索数据。因此很多概念与MySQL类似的。 ES中的概念数据库概念说明索引库&#xff08;indices)数据库&#xff08;Database&#xff09;ES中可…...

出入了解——Vue.js

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。个人主页&#xff1a;小李会科技的…...

MySQL8 双主(主主)架构部署实战

前言 大家好&#xff0c;我是 沐风晓月 本文收录于《数据库入门到精通系列》专栏&#xff0c; 更多内容可以关注我的csdn博客。 本文主要讲解MySQL主主架构实战,在开始之前需要根据下面的提示来配置环境&#xff1a; Linux基础命令不熟参考&#xff1a; 《linux基本功-基础…...

【数据结构】第三站:单链表

目录 一、顺序表的缺陷 二、链表 1.链表的概念以及结构 2.链表的分类 3.单链表的逻辑结构与物理结构 三、单链表的实现 1.单链表的定义 2.单链表的接口定义 3.单链表的接口实现 四、单链表的实现完整代码 一、顺序表的缺陷 在上一篇文章中&#xff0c;我们了解了顺序…...

【蓝桥杯2020】七段码

【题目描述】 七段码 HUSTOJ 题目导出文件 [蓝桥杯2020] 第十一届蓝桥杯第二次省赛—填空题E题 七段码 小蓝要用七段码数码管来表示一种特殊的文字。 上图给出了七段码数码管的一个图示&#xff0c;数码管中一共有 7 段可以发光的二 极管&#xff0c;分别标记为 a, b, c,…...

Spark读取JDBC调优

Spark读取JDBC调优&#xff0c;如何调参一、场景构建二、参数设置1.灵活运用分区列实际问题&#xff1a;工作中需要读取一个存放了三四年历史数据的pg数仓表&#xff08;缺少主键id&#xff09;&#xff0c;需要将数据同步到阿里云 MC中&#xff0c;Spark在使用JDBC读取关系型数…...

【文心一言】什么是文心一言,如何获得内测和使用方法。

文心一言什么是文心一言怎么获得内测资格接下来就给大家展示一下文学创作商业文案创作数理逻辑推算中文理解多模态生成用python写一个九九乘法表写古诗前言&#xff1a; &#x1f3e0;个人主页&#xff1a;以山河作礼。 &#x1f4dd;​&#x1f4dd;:本文章是帮助大家了解文心…...

CentOS8服务篇10:FTP服务器配置与管理

一、安装与启动FTP服务器 1、安装VSFTP服务器所需要的安装包 #yum -y install vsftpd 2、查看配置文件参数 Vim /etc/vsftpd/vsftpd.conf &#xff08;1&#xff09;是否允许匿名登录 anonymous_enableYES 该行用于控制是否允许匿名用户登录。 &#xff08;2&…...

笔试强训3.14

一、选择题 1.以下说法错误的是&#xff08;C&#xff09; A.数组是一个对象 B.数组不是一种原生类 C.数组的大小可以任意改变 D.在Java中&#xff0c;数组存储在堆中连续内存空间里 ​ 相关知识点&#xff1a;原生/内置数组是那八个&#xff0c;其他的都是引用的&#xff0c;借…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...