java08基础(值传递和引用传递 类和对象)
目录
一. 值传递和引用传递
1. 值传递
2. 引用传递
二. 面向对象思想
三. 类和对象
1. 类
2. 对象
2.1 使用
2.2 成员变量和局部变量区别
2.3 操作成员方法
2.4 this关键字(初识)
2.5 构造方法 (见java09)
一. 值传递和引用传递
1. 值传递
值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数.
public static void main(String[] args) {int num1 = 10;int num2 = 20;swap(num1, num2);System.out.println("num1:" + num1 + "num2:" + num2);}// 值传递public static void swap(int a, int b) {System.out.println("进入swap的a:" + a + "b:" + b);a = a ^ b;b = a ^ b;a = a ^ b;System.out.println("结束的时候swap的a" + a + "b:" + b);}
2. 引用传递
引用传递是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
示例1:
public static void main(String[] args) {// 测试引用传递int[] ns = { 1, 2, 3, 4 };System.out.println("main开始前" + Arrays.toString(ns));swap(ns);System.out.println("main结束" + Arrays.toString(ns));}public static void swap(int[] ns1) {System.out.println("数组里的内容" + ns1);System.out.println("数组里的值" + Arrays.toString(ns1));if (ns1.length >= 2) {ns1[0] = ns1[0] ^ ns1[ns1.length - 1];ns1[ns1.length - 1] = ns1[0] ^ ns1[ns1.length - 1];ns1[0] = ns1[0] ^ ns1[ns1.length - 1];}System.out.println("操作后的数组内容" + Arrays.toString(ns1));}
示例2:
public static void main(String[] args) {int[] ns1 = { 1, 2, 3, 4 };int[] ns2 = { 22, 33 };swap(ns1, ns2);System.out.println(Arrays.toString(ns1));System.out.println(Arrays.toString(ns2));}public static void swap(int[] ns1, int[] ns2) {int[] temp = ns1;ns1 = ns2;ns2 = temp;System.out.println(Arrays.toString(ns1));System.out.println(Arrays.toString(ns2));}
二. 面向对象思想
●什么是面向过程,什么是面向对象
●面向过程:亲力亲为
●面向对象:找人帮忙
三. 类和对象
●类:是对某一类事物的统称,比如举例人
●对象:是这一类事物中具体的个体。
类的基本组成部分:
属性:对类的静态描述(成员变量)
行为:这个类能干什么(方法)
类和对象的关系
●类是抽象的
●对象是具体的
总结:类是对象的抽象,对象是类的具体。
1. 类
语法规则:
修饰符 class 类名{field;成员属性/全局变量method;方法 }//修饰符:public//class: 修饰类的关键字//类名:标识符,大驼峰命名法成员属性:修饰符 数据类型 变量名;修饰符 ---public公共的,privated私有的数据类型---任意数据类型均可变量名---见名知意
2. 对象
对象的创建:
●导包:import 包名.类名(同包下的类不用导包,java.lang包下的类不用导包)
●位置:放在类的上面,package的下面。
语法:
import 包名.类名[注]:
●要使用的类和当前的类在同一个包下面,可以省略导包。
●使用java.lang包下的类,可以省略导包string,System
类名 对象名 = new 类名()●对象名:标识符,小驼峰 和变量名命名一致
2.1 使用
操作成员变量:
调用属性:赋值:对象名.属性名 = 值取值:数据类型 变量名 = 对象名.属性名●数据类型和成员变量名一致即可
●成员变量有默认值,基本数据类型和默认值一样。public class Person {// 属性public String name;public int age; }Person p1 = new Person();p1.name = "zkt";p1.age = 20;
●操作成员变量的时候,有可能会出现非法赋值;
●可以不让外部直接访问成员变量,将成员变量私有化(private)
提供getXXX()获取成员变量,方法有返回值
提供setXXX(数据类型 参数)给成员变量赋值,有参数
//有返回值,取值public int getAge() {return age;}//有参数,赋值//局部变量和全局变量发生重名的时候,优先使用局部变量//成员变量前面加this关键字--强调当前的变量是成员变量public void setAge(int age) {if (age < 0 || age > 140) {System.out.println("输入年龄有误");} else {this.age = age;}
2.2 成员变量和局部变量区别
区别 成员变量 局部变量 类中位置不同 类内,方法外 方法中 初始化值不同 有默认初始化值,同数组一样 没有默认初始化值,使用之前必须完成赋值 内存位置不同 堆内存 栈内存 生命周期不同 在堆的内部,随着对象的产生而产生,随着对象被垃圾回收机制回收而消亡
随着方法的产生而创建,栈内,方法出栈,局部变量消亡。生命周期较短
作用域 类 成员方法中
2.3 操作成员方法
调用成员方法:对象名.方法名(参数)---无返回的值方法调用数据类型 变量名 = 对象名.方法名(参数)---有返回的值方法调用public class Person {// 属性public String name;//操作成员变量的时候,有可能会出现非法赋值;//可以不让外部直接访问成员变量,将成员变量私有化(private)//提供getXXX()获取成员变量,方法有返回值//提供setXXX(数据类型 参数)给成员变量赋值,有参数private int age;// 方法public void study(String name) {System.out.println(name + "喜欢学习");}public String eat(String sth) {return name + "中午要吃" + sth;}//有返回值,取值public int getAge() {return age;}//有参数,赋值//局部变量和全局变量发生重名的时候,优先使用局部变量//成员变量前面加this关键字--强调当前的变量是成员变量public void setAge(int age) {if (age < 0 || age > 140) {System.out.println("输入年龄有误");} else {this.age = age;}} }public class Demo02 {public static void main(String[] args) {Person p1 = new Person();p1.name = "zkt";System.out.println(p1.name);p1.study();String str1 = p1.eat("红烧肉");System.out.println(str1);} }
2.4 this关键字(初识)
当局部变量和成员变量重名时,Java一般选择就近原则,优先使用局部变量。非要使用成员变量,就需要使用this关键字进行区分。
class Student {int num = 10;public void show(){int num = 20;System.out.println(num); // 20 局部变量System.out.println(this.num); // 10 成员变量} }this含义: 当前对象的引用,谁调用谁就是this
用法:
this.字段 this.方法名() this() -- 调用构造函数 放在代码第一行
2.5 构造方法 (见java09)
相关文章:
java08基础(值传递和引用传递 类和对象)
目录 一. 值传递和引用传递 1. 值传递 2. 引用传递 二. 面向对象思想 三. 类和对象 1. 类 2. 对象 2.1 使用 2.2 成员变量和局部变量区别 2.3 操作成员方法 2.4 this关键字(初识) 2.5 构造方法 (见java09) 一. 值传递和引用传递 1. 值传递 值传递是指在调用函数时将…...
高级数据结构与算法习题(9)
一、判断题 1、Let S be the set of activities in Activity Selection Problem. Then the earliest finish activity am must be included in all the maximum-size subset of mutually compatible activities of S. T F 解析:F。设S是活动选择问题中的一…...
Linux的vim下制作进度条
目录 前言: 回车和换行有区别吗? 回车和换行的区别展示(这个我在Linux下演示) 为什么会消失呢? 回车和换行的区别 为什么\r和\n产生的效果不同? 打印进度条: (1)打印字符串 …...
C++学习笔记2
T1 奇怪的教室 题目背景 LSU 的老师有个奇怪的教室,同学们会从左到右坐成一个横排,并且同一个位置可以坐多个同学。这天,入学考试的成绩下来了。同学们想根据入学考试的成绩,找出班里学霸扎堆的区域“学霸区”。 题目描述 共有…...
细数:智能物流装备界的并购案~
导语 大家好,我是智能仓储物流技术研习社的社长,老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 近年来,随着智能仓储物流行业的快速发展,全球范围内的并购活动日益频繁,各大企…...
微信小程序播放编码为 video/mp4;codecs=vp8 opus 的视频没有声音
最近在做浏览器录屏功能,主要是录屏加上麦克风生成mp4视频,最终生成的是编码为 video/mp4;codecsvp8 opus 的视频,音频编码因为是 opus 是无法在小程序正常播放的,这样就导致了视频没有声音。后来就在服务端做了一层转换ÿ…...
Linux 指令lsblk 作用,以及查看cpu使用情况和磁盘IO iostat指令详解
lsblk 指令 在Linux系统中,lsblk(列表块设备)命令是一个非常实用的工具,用于显示所有可用的块设备信息,如硬盘、USB驱动器、SD卡以及它们的分区。这个命令以易于理解的树状结构展示这些信息,清晰地表明了设…...
Mybatis之Sqlsession、Connection和Transaction三者间的关系
前言 最近在看Mybatis的源码,搜到这篇文章Sqlsession、Connection和Transaction原理与三者间的关系,debug之后发现有不少疑惑,于是按照原文整理了一下,记录下debug中的一些困惑点。 对于我们开发来讲,不管跟任何关系…...
WRT1900ACS搭建openwrt服务器小记
参考链接 wrt1900acs openwrt wrt1900acs openwrt 刷机 wrt1900acs原生固件刷openwrt-23.05.3-mvebu-cortexa9-linksys_wrt1900acs-squashfs-factory.img wrt1900acs openwrt更新刷openwrt-23.05.3-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin 通过WEB UI来…...
Spring AOP(3)
目录 Spring AOP原理 代理模式 代理模式中的主要角色 静态代理 动态代理 总结:面试题 什么是AOP? Spring AOP实现的方式有哪些? Spring AOP实现原理 Spring使用的是哪种代理方式? JDK和CGLIB动态代理的区别? Spring AOP原理 代理模式 代理模式, 也叫委托模式. …...
推荐5个免费的国内平替版GPT
提起AI,大家第一个想到的就是GPT。 虽然它确实很厉害,但奈何于我们水土不服,使用门槛有些高。 不过随着GPT的爆火,现在AI智能工具已经遍布到各行各业了,随着时间的推移,国内的AI工具也已经“百花盛放”了…...
弹性云服务器是什么,为何如此受欢迎
云计算作为当下炙手可热的技术领域,已然成为现代企业不可或缺的核心能力。云服务器作为云计算的基石之一,在这个数字化时代发挥着至关重要的作用。而弹性云服务器,作为云服务器的一种演进形式,更是备受瞩目。 弹性云服务器&#…...
Docker部署RabbitMQ与简单使用
官网地址: Messaging that just works — RabbitMQ 我的Docker博客:Docker-CSDN博客 1.结构 其中包含几个概念: **publisher**:生产者,也就是发送消息的一方 **consumer**:消费者,也就是消费消息的一方 …...
2024年黄石市建设优质工程评价认定申报条件、流程及材料合集
2024年黄石市建设优质工程评价认定申报条件、流程及材料合集如下,黄石市的企业单位可以了解一下,有疑问名字找我哦。 第一章总则 第一条为贯彻落实《中华人民共和国建筑法》、《安全生产法》、《建设工程质量管理条例》、《建设工程安全生产管理条例》…...
偏微分方程算法之混合边界条件下的差分法
目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们在前几节中介绍了Poisson方程的边值问题,接下来对椭圆型偏微分方程的混合边值问题进行探讨,研究对象为: 其中,为矩形区域,为上的连续函数…...
apollo资料整理
Application X: Application X Apollo: Apollo 自动驾驶开放平台 Cyber RT API tutorial — Cyber RT Documents documentation Cyber RT API tutorial — Cyber RT Documents documentation GitHub - daohu527/dig-into-apollo: Apollo notes (Apollo学习笔记) - Apollo l…...
森林消防新利器:高扬程水泵的革新与应用/恒峰智慧科技
随着全球气候变化的加剧,森林火灾的频发已成为威胁生态安全的重要问题。在森林消防工作中,高效、快速的水源供给设备显得尤为重要。近年来,高扬程水泵的广泛应用,为森林消防工作带来了新的希望与突破。 一、高扬程水泵的技术优势 …...
Microsoft Universal Print 与 SAP 集成教程
引言 从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。 Microsoft Universal Print 是一种基于云的打印解决方案,它允许组织以集中化的方式管理打印机和打印机驱…...
VBA在Excel中字母、数字的相互转化
VBA在Excel中字母、数字的相互转化 字母转数字的方法 数字转字母的方法 众所周知,Excel表中的行以数字展示,列用字母展示,如下图: 编程时,很多时候需要将列的字母转变为数字使用,如cells(num1,num2).value等,不知大家是怎么将字母转化为数字的,Excel是否有其他方式…...
【C语言】——联合体与枚举
【C语言】——联合体与枚举 一、联合体1.1、联合体类型的声明1.2、联合体的特点1.3、相同成员的结构体和联合体对比1.4、联合体的大小计算1.5、联合体的应用举例 二、枚举2.1、枚举类型的声明2.2、枚举类型的优点 一、联合体 1.1、联合体类型的声明 联合体也叫做共用体 与…...
手把手教你用FUTURE POLICE:会议录音秒变带时间轴字幕
手把手教你用FUTURE POLICE:会议录音秒变带时间轴字幕 1. 为什么需要高精度字幕对齐? 在日常工作中,我们经常遇到这样的场景:重要会议录音需要整理成文字稿,但人工听写耗时耗力;视频剪辑时需要添加字幕&a…...
系统架构设计师常见高频考点总结之计算机网络
学习这些网络题目时,可以将网络层次结构想象成高速公路系统:核心层是连接城市的大型立交桥和主干道,追求极速转发;汇聚层是出口闸机,负责检查通行证(安全过滤)和分流;而接入层则是通…...
任天堂Switch大气层系统终极指南:7步完成自定义固件安装与虚拟系统配置
任天堂Switch大气层系统终极指南:7步完成自定义固件安装与虚拟系统配置 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)是任天堂…...
Whisper语音识别镜像快速部署:5分钟搭建多语言客服转写服务
Whisper语音识别镜像快速部署:5分钟搭建多语言客服转写服务 1. 引言:语音识别在客服场景的挑战 在全球化的商业环境中,客服中心面临着多语言支持的巨大挑战。传统语音识别系统往往需要为每种语言单独部署模型,不仅成本高昂&…...
如何通过手机号快速查询QQ号:3分钟解决账号遗忘难题
如何通过手机号快速查询QQ号:3分钟解决账号遗忘难题 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字时代,QQ账号作为重要的社交和工作工具,其安全性与可访问性至关重要。然而,更…...
抖音无水印下载完全指南:5分钟掌握批量下载核心技巧
抖音无水印下载完全指南:5分钟掌握批量下载核心技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...
【论文】信息系统项目管理师范围管理要点
本资料摘自《科科过论文集分析》,底部附PDF图片版记忆。项目管理中范围管理的六大核心环节,旨在为专业写作提供具体的实践指导与案例素材。文档强调在描述规划、需求收集和范围定义时,应避免枯燥的理论堆砌,转而通过真实的业务场景…...
YOLOv12模型轻量化实战:应对嵌入式设备资源约束
YOLOv12模型轻量化实战:应对嵌入式设备资源约束 最近几年,目标检测模型在精度上突飞猛进,但随之而来的是模型体积和计算量的急剧膨胀。当你兴冲冲地想把最新的YOLOv12模型部署到Jetson Nano或者树莓派上时,往往会发现现实很骨感&…...
AIVideo效果对比展示:不同参数下的视频生成质量评测
AIVideo效果对比展示:不同参数下的视频生成质量评测 1. 开场白:参数设置对视频效果的影响 你有没有遇到过这样的情况:用AI生成视频时,明明输入的内容一样,但出来的效果却天差地别?有时候画面模糊不清&…...
弦音墨影保姆级教程:解决‘视频加载失败’‘墨迹不跟随目标’等10类高频问题
弦音墨影保姆级教程:解决‘视频加载失败’‘墨迹不跟随目标’等10类高频问题 1. 系统简介与核心价值 「弦音墨影」是一款将人工智能技术与传统美学完美融合的视频分析工具。它采用水墨丹青的视觉风格,通过先进的Qwen2.5-VL多模态技术,让视频…...




