Java(一)(引用类型的参数在传递,方法重载,面向对象编程基础)
基本类型和引用类型的参数在传递的时候有什么不同?
基本类型的值传递:参数传输存储的数据值
引用类型的值传递:参数传输存储的地址值

传递数组名字的时候,传递的是数组的地址,change方法可以通过地址直接访问我们在堆内存中开辟的数组,然后改变数组,数组中的元素发生变化
方法重载
一个类中,出现多个方法的名称相同,但是他们的形参列表是不同的,那么这些方法成为方法重载了

注意事项:
(1)一个类中,只要一些方法的名称相同,形参列表不同,那么他们就是方法重载了,其他的都不管
(2)形参列表不同指的是:形参的个数,类型,顺序不同,不关心形参的名称
面向对象编程基础

简单的快速入门
开发一个一个的对象,把数据交给对象然后调用对象的方法来完成对数据的处理
1.我们先整一个对象
对象就是一种特殊的数据结构
package hello;public class student {
// 定义变量String name;double chinese;double math;
//定义方法 // 方法不用加staticpublic void printTotalScore(){System.out.println(name+"总成绩"+(chinese+math));}public void printAverageScore(){System.out.println(name+"平均成绩"+(chinese+math)/2);}
}
class也就是类,也称为对象的设计图(或者对象的模板)
2.调用对象
创建对象:类名 对象名 = new 构造器()
对象的使用: 对象名.成员变量 对象名.成员方法
package hello;public class test {// 面向对象快速入门// 创建一个学生对象,封装阿衰的数据public static void main(String[] args) {student s1 = new student();s1.name = "阿衰";s1.chinese = 100;s1.math = 100;s1.printTotalScore();s1.printAverageScore();}
}


注意事项:
1.类型建议用英文单词,满足驼峰模式,比如:Student,Car等
2.类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)

3.成员变量本身存在默认值,定义成员变量的时候也不需要赋初始值(应为不同的对象的属性一般是不一样的)

4.一个代码文件中,可以写多个class类,但是只能一个用public修饰,重点强调:public修饰的类型要称为代码文件名

5.如果某个对象没有对象引用它,则对象无法被操作了,该对象会成为所谓的垃圾对象
java中会有自动垃圾回收机制,不用担心浪费空间

this
this就是一个变量,可以用在方法中,来拿当前对象
具体用在哪?具体用在有参数构造器中的,同时也可以用在方法中

哪个对象调用这个方法,this就是哪个对象的地址

this:主要是来解决名称冲突的问题,下面的学生考试的成绩和录取的成绩250名字相互冲突了,所以在学生成绩前面加this,表示这个是学生的成绩
下面是this用在方法中

下面是this用在构造器中

构造器的使用
作用:初始化一个类的对象,并返回一个对象的地址
详细格式: 修饰符,类名(形参){......}
分类:(1)无参构造器:初始化一个类的对象,并返回一个对象的地址,默认值
(2)有参构造器:初始化一个类的对象,并返回一个对象的地址,同时指定值
调用: 类型 对象 = new 构造器();
啥叫构造器?我们在创建一个对象的时候,
student s1 = new student();后面有一个括号
这个括号会指定一个对象创建的一种方式

上面是无参数的构造器,我们上面在创建s1的时候没有指定()括号里面的参数,那就是按照无参数的构造器来创建对象的,类在设计的时候,如果不写构造器,java是会为类自动生成一个无参的构造器的
下面是有参数的构造器,这种构造器只要将参数传进来,就会自动指定好成员的属性
一旦有参数构造器,java就不会帮我们自动生成无参数的构造器了,所以建立自己写一个无参数构造器

封装
封装的规范:合理隐藏,合理暴露
我们可以将成员变量隐藏起来,然后设置一些方法,来进行一系列的操作
我们通过public和private 这两个关键字来控制隐藏和暴露
我们举个例子

我们应该调用里面的方法

这样做到合理暴露和合理隐藏
实体javaBean
什么是实体类
就是一种特殊形式的类,满足下面的两个要求
(1)这个类中的成员变量都是私有的,并且要对外提供相应的get...和set...方法
(2)类中必须要有一个公共的无参的构造器
package hello;public class student {// 1.必须私有成员变量,并为每个成员变量都提供get set方法private String name;private double score;
// 有参数构造器public student(String name, double score) {this.name = name;this.score = score;}private double score;
// 2. 必须为类提供一个公共的无参数构造器public student() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}
我们创建上面的实体类对象
package hello;public class test {public static void main(String[] args) {student s1 = new student();s1.setName("阿衰");s1.setScore(99);System.out.println(s1.getName());System.out.println(s1.getScore());}
}
区别成员变量和局部变量的区别
1.类中位置不同:成员变量(类中和方法外) , 局部变量(常见于方法中)
2.初始化不同:成员变量(有默认值,不需要初始化赋值 整型是0,浮点型是0.0,引用类型是null,布尔型是false),局部变量(没有默认值,使用之前必须完成赋值)
3.内存位置不同:成员变量(存在于堆内存),局部变量(栈内存)
4.作用域不同: 成员变量(整个对象),局部变量(在所归属的大括号中)
5.生命周期不同:成员变量(与对象同生共死),局部变量(方法调用而生,方法结束而死)
相关文章:
Java(一)(引用类型的参数在传递,方法重载,面向对象编程基础)
基本类型和引用类型的参数在传递的时候有什么不同? 基本类型的值传递:参数传输存储的数据值 引用类型的值传递:参数传输存储的地址值 传递数组名字的时候,传递的是数组的地址,change方法可以通过地址直接访问我们在堆内存中开辟的数组,然后改变数组,数组中的元素发生变化 方…...
Vue第1天:特性概览
文章目录 Vue.js 简介 Vue的特性 如何使用Vue 安装Vue 通过CDN引入 使用npm 创建Vue实例 结语 Vue.js 简介 Vue.js(通常简称为Vue)是一款流行的JavaScript框架,专注于构建用户界面。它的设计灵感来自于现代的JavaScript框架…...
C++语法基础知识面经汇总
背景:汇总了网上C常考的基础知识,方便复习 1,static关键字 static可以用于成员变量,或者成员函数。存储空间在静态存储区(编译器会将其初始化为0,对应的存储空间直到程序执行结束才会释放)&…...
AM@幂级数性质@幂级数和函数求解
文章目录 幂级数性质四则运算性质分析性质求解和函数例例 幂级数性质 和多项式有相似的性质本文介绍用幂级数的性质求解幂级数和函数的两个例子 四则运算性质 若幂级数 ∑ n 0 ∞ a n x n \sum_{n0}^{\infin}a_{n}x^{n} ∑n0∞anxn(1)的收敛半径为 R 1 R_1 R1,和函数为…...
PHP低版本安全问题
目录 1、PHP弱类型问题 1.1 MD5、 SHA1 弱比较问题 1.2 数组 0 1)函数无法处理数组,返回0 2)strcmp 2、特殊字符串导致的问题 2.1 "ffifdyop" 与 md5(string,raw) 2.2 ereg函数漏洞:00 截断 3、正则匹配问…...
结构体——C语言初阶
一.结构体的声明: (1)结构的基础知识: 结构体是一种构造数据类型把不同类型的数据组合成一个整体结构体是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量需要注意的是,结构体是一种…...
基于django电影推荐系统
基于django电影推荐系统 摘要 该Django电影推荐系统是一个简单而基础的框架,旨在展示系统的基本组件。系统包括两个主要模型,即Movie和Rating,用于存储电影信息和用户评分。视图层包括展示电影列表和电影详情的功能,使用模板进行页…...
【问题处理】WPS提示不能启动此对象的源应用程序如何处理?
哈喽,大家好,我是雷工! 最近在用WPS打开word文件中,插入的Excel附件时,无法打开,提示:“不能启动此对象的源应用程序”。 经过上网查找处理办法,尝试解决,现将解决过程记…...
UE 程序化网格 计算横截面
首先在构造函数内加上程序化网格,然后复制网格体到程序化网格组件上,将Static Mesh(类型StaticMeshActor)的静态网格体组件给到程序化网格体上 然后把StaticMesh(类型为StaticMeshActor)Instance暴漏出去 …...
【Spring】IoC容器的一些总结与补充
文章目录 1. 创建容器的两种方式相对路径导入绝对路径导入 2. 获取Bean的三种方式getBean后强转类型getBean内写明类别根据类别获取bean 3. 容器层次结构4. BeanFactory5. bean的总结6. 注入的总结 1. 创建容器的两种方式 相对路径导入 ApplicationContext ctx new ClassPat…...
Java GUI实现五子棋游戏
五子棋是一种双人对弈的棋类游戏,通常在棋盘上进行。棋盘为 1515 的方格,黑白双方各执棋子,轮流在棋盘的格点上落子,先在横、竖、斜线上形成五个相连的同色棋子者获胜。五子棋规则简单,易学难精,兼具攻防和…...
Python 集成 Nacos 配置中心
Python 集成 Nacos 配置中心 下载 Nacos 官方 pyhton 库 pip install nacos-sdk-python # 指定国内阿里云镜像源 pip3 install nacos-sdk-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com配置 Nacos 相关信息 Global:nacos:port: 8848…...
Debian 11 更新 Node.js 版本
发布于 2023-07-14 在 https://chenhaotian.top/debian/d-upd-nodejs/ 步骤 从 NodeSource 服务下载需要的 Node.js 安装脚本。注意更换版本号。当前的 LTS 版本是 18.x curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -现在可以直接从 apt 安装࿰…...
python 对图像进行聚类分析
import cv2 import numpy as np from sklearn.cluster import KMeans import time# 中文路径读取 def cv_imread(filePath, cv2_falgcv2.COLOR_BGR2RGB): cv_img cv2.imdecode(np.fromfile(filePath, dtypenp.uint8), cv2_falg) return cv_img# 自定义装饰器计算时间 def…...
程序员导航站
探路者 hello.alluniverse.vip 开发者导航 - Pro Developer网站导航 探路者是一款极简导航工具,致力于收录的每个站点都有其独特的作用。同时支持自定义导航,让用户快速实现个性化的导航站点。 特性概述 免费ChatGPT 装机必备 开发工具 Git精选项目 …...
BIO、NIO、AIO三者的区别及其应用场景(结合生活例子,简单易懂)
再解释三者之前我们需要先了解几个概念: 阻塞、非阻塞:是相较于线程来说的,如果是阻塞则线程无法往下执行,不阻塞,则线程可以继续往下 执行。同步、异步:是相较于IO来说的,同步需要等待IO操作完…...
深度学习YOLO图像视频足球和人体检测 - python opencv 计算机竞赛
文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov5算法5 数据集6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习YOLO图像视频足球和人体检测 该项目较为新颖,适合作为竞赛课题方向,学长非…...
系列七、JVM的内存结构【堆(Heap)】
一、概述 一个JVM实例只存在一个堆内存,堆内存的大小是可以手动调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行,堆内存分为三个部分,即…...
什么是Selenium?如何使用Selenium进行自动化测试?
什么是 Selenium? Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。 等等,先别激动,让我再次重申一下,Selenium 仅可以测试Web应用…...
【蓝桥杯 第十五届模拟赛 Java B组】训练题(A - I)
目录 A、求全是字母的最小十六进制数 B、Excel表格组合 C、求满足条件的日期 D、 取数字 - 二分 (1)暴力 (2)二分 E、最大连通块 - bfs F、哪一天? G、信号覆盖 - bfs (1)bfs…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
