Java(一)(引用类型的参数在传递,方法重载,面向对象编程基础)

news2024/12/24 11:19:36

基本类型和引用类型的参数在传递的时候有什么不同?

基本类型的值传递:参数传输存储的数据值

引用类型的值传递:参数传输存储的地址值

 传递数组名字的时候,传递的是数组的地址,change方法可以通过地址直接访问我们在堆内存中开辟的数组,然后改变数组,数组中的元素发生变化

方法重载

一个类中,出现多个方法的名称相同,但是他们的形参列表是不同的,那么这些方法成为方法重载了

注意事项:

(1)一个类中,只要一些方法的名称相同,形参列表不同,那么他们就是方法重载了,其他的都不管

(2)形参列表不同指的是:形参的个数,类型,顺序不同,不关心形参的名称

面向对象编程基础

简单的快速入门

开发一个一个的对象,把数据交给对象然后调用对象的方法来完成对数据的处理

1.我们先整一个对象

对象就是一种特殊的数据结构

package hello;

public class student {
// 定义变量
    String name;
    double chinese;
    double math;
//定义方法  // 方法不用加static
    public 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就不会帮我们自动生成无参数的构造器了,所以建立自己写一个无参数构造器

封装

封装的规范:合理隐藏,合理暴露

我们可以将成员变量隐藏起来,然后设置一些方法,来进行一系列的操作

我们通过publicprivate 这两个关键字来控制隐藏和暴露

我们举个例子

我们应该调用里面的方法

这样做到合理暴露和合理隐藏

实体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.生命周期不同:成员变量(与对象同生共死),局部变量(方法调用而生,方法结束而死)

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

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

相关文章

HP惠普光影精灵7笔记本Victus by HP 16.1英寸游戏本16-d0000原装出厂Windows11.21H2预装OEM系统

下载链接:https://pan.baidu.com/s/1LGNeQR1AF1XBJb5kfZca5w?pwdhwk6 提取码:hwk6 可适用的型号: 16-d0111tx,16-d0112tx,16-d0125tx,16-d0127tx,16-d0128tx,16-d0129tx&#…

“升级图片管理,优化工作流程——轻松将JPG转为PNG“

在图片时代,无论是工作还是生活,图片管理都显得尤为重要。批量处理图片,将JPG格式轻松转换为PNG格式,能够使您的图片管理更优化,提高工作效率。 首先,我们进入首助编辑高手主页面,会看到有多种…

键盘方向键移动当前选中的table单元格,并可以输入内容

有类似于这样的表格&#xff0c;用的<table>标签。原本要在单元格的文本框里面输入内容&#xff0c;需要用鼠标一个一个去点以获取焦点&#xff0c;现在需要不用鼠标选中&#xff0c;直接用键盘的上下左右来移动当前正在输入的单元格文本框。 const currentCell React.u…

简单算法——回溯、贪心、动态规划

回溯法 回溯法深度优先剪枝&#xff0c;实质就是用递归代替for循环。 仍然是一种暴力遍历的手段&#xff0c;通常与递归配合使用&#xff0c;用于解决单纯for循环无法处理的问题&#xff0c;比如组合、切割、子集、排列等问题——比如求n个数里的长度为k的组合&#xff0c;需要…

docker 安装mongodb 实现 数据,日志,配置文件外挂

docker 安装mongodb 实现数据&#xff0c;日志&#xff0c;配置文件外挂 1 背景 最近开发了一个评论系统之前用mysql来存储数据&#xff0c;但是考虑到后期业务增大访问量也会增大&#xff0c;为了兼容这种高并发的场景&#xff0c;因此经过多方面的考虑&#xff0c;我们最终…

调试/抓包工具

一、Fiddler【推荐window使用】 介绍&#xff1a;个人认为是 Windows 平台最好用的抓包工具&#xff1b; 下载&#xff1a;Fiddler | Web Debugging Proxy and Troubleshooting Solutions 使用方式&#xff1a;这一篇文章写的很全&#xff0c;认真看完就够用了 Fiddler 抓包工…

FISCO BCOS 3.0【02】配置和使用系统自带的控制台

官方技术文档&#xff1a;https://fisco-bcos-doc.readthedocs.io/zh-cn/latest/index.html 我们在官方技术文档的基础上&#xff0c;进行&#xff0c;对文档中一些不清楚的地方进行修正 控制台提供了向FISCO BCOS节点部署合约、发起合约调用、查询链状态等功能。 第一步. 安…

Linux本地docker一键部署traefik+内网穿透工具实现远程访问Web UI管理界面

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…

Git详解及 github使用

1.1 关于版本控制 开始之前先看一个没有版本控制的例子 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本&#xff0c;或许还会改名加上备份时间以示区别。这么做唯一的 好处就是简单&#xff0c;但是特别容易犯错。有时候会混淆所在…

市级奖项+1,持安获「创业北京」创业创新大赛优秀奖!

2274个创业项目参赛 历经五个多月的激烈角逐 第六届“创业北京”创业创新大赛 终于圆满落下帷幕 持安科技在北京市总决赛中再创佳绩&#xff01; 荣获制造业赛道优秀奖 本次大赛由北京市人力资源和社会保障局、北京市发展和改革委员会等11家单位联合主办&#xff0c;以“创…

C语言--从键盘输入10个数字放在数组中,并输出

用scanf读取数字的时候要注意&#xff0c;可以输入一个数字&#xff0c;按一下回车&#xff0c;输入一个数字&#xff0c;按一下回车&#xff0c;也可以一次性输入完10个数据。&#xff08;中间可以用空格隔开&#xff0c;系统会自动识别&#xff09; 输出一:每按下一个数字&am…

数据库mysql详细教学

1024 byte 构成 1 kb 1024 KB > 1MB 1024 MB > 1GB 1024 GB > 1TB 1024 TB > 1PB 内存的数据&#xff0c;断电后会丢失。外存的数据&#xff0c;断电后数据还在~ “持久化” 这样的次&#xff0c;意思就是把数据写到硬盘上。 mysql的第一组基本操作&#xff1a;数…

Linux 系统误将 chmod 权限改成 了 000,如何恢复?

Linux 系统误将 chmod 权限改成 了 000&#xff0c;如何恢复? busybox 是 Linux 标配&#xff0c;含有大多数主流 Linux 命令&#xff0c;你可以把它的存在当作救急备份。简单功能都可以调用 busybox 完成。这也就意味着很多原始命令出故障的情况下都可以用 busybox 暂时替代。…

【js作用域】JavaScript中作用域的是什么?:从编译时其承担什么角色和查询作用域中的变量的角度解析作用域

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;JavaScript进阶指南 &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继…

架构师篇 DDD领域驱动设计篇

一 DDD领域驱动设计 1.1 领域驱动设计 领域驱动设计(英文&#xff1a;Domain-Driven Design&#xff0c;缩写DDD)是一种模型驱动设计的方法&#xff0c;领域驱动设计常以战略设计与战术设计来将整个领域展现的淋漓尽致&#xff0c;其作用范围既面向业务也面向技术。从战略角度…

PHP排序sort()、asort() 和 ksort() 的区别及用法

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

SOLIDWORKS Electrical工程属性配置与图框

导读 很多工程师都是直接使用现有的图框&#xff0c;但是现有图框会遇到一些问题&#xff0c;自己想显示的内容不知道怎么设置出来&#xff0c;或者是图纸显示的内容太繁杂&#xff0c;行列号不符合自己的习惯。这些问题都是关于图框模板的设计。 一、关于工程属性设计的问题…

【每日一题】数位和相等数对的最大和

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;哈希表 写在最后 Tag 【哈希表】【数组】【2023-11-18】 题目来源 2342. 数位和相等数对的最大和 题目解读 在数组中找出数位和相等数对的和的最大值。 解题思路 方法一&#xff1a;哈希表 维护一个不同的数位和表…

es 算法函数 有点不太懂了没有大神给指点一下

我先说一下我对算法分析的理解 算法函数&#xff0c;我们使用算法函数给指定的数据提高对应的值的方式 比如我现在要给一家酒店排名提高排名&#xff0c;我们可以利用算法函数&#xff0c;提高酒店排名&#xff0c;因为酒店的名称 相关算法的使用场景 在使用的时候出现了这…

《循环双向链表》(带哨兵位的头节点)

目录 ​编辑 前言&#xff1a; 关于双向循环带头链表: 模拟实现双向循环带头链表&#xff1a; 1.typedef数据类型 2.打印链表 3.初始化链表&#xff1a; 4.创建节点 5.尾插 6.头插 7.尾删 8.头删 9.寻找节点 10.在节点前插入 11.删除指定节点 单链表和双链表的区别…