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

面向对象复习(2)

面向对象(2)

对象与引用

java语言中除基本类型之外的变量都称之为引用类型

java中的对象时通过引用对其操作的

Car bm  =  new Car();
  • 右边的new Car是以Car类为模板,调用无参构造函数,在堆空间中创建一个Car对象

  • 左边的Car bm 在栈中创建了一个Car类型的引用变量,所谓Car的引用变量,就是指向右边对象的对象引用

  • = 把对象在内存中的地址 赋给 左边的变量 左边的变量拿的只是对象的引用地址

public Person(String name,int age){this.name=name;this.age=age;
}

this关键字

this表示当前正在操作的对象,在成员方法,构造方法中使用成员变量,使用this调用

this代表当前对象

this可以引用成员变量

this可以引用成员方法

public void showInfo(){System.out.println("姓名:"+this.name+" 年龄:"+this.age);
}

哪个对象调用showInfo方法,那么 name,age就是那个方法中的属性

值传递

public class Demo {
​/*基本类型值传递*/public static void main(String[] args) {Demo d = new Demo();int a = 10;d.test(a);System.out.println(a);}
​/*形参b用实参a的值,直接对b进行了赋值,在内存中有两个独立的存储空间 a,b*/public void test(int b){b = 20; //b的值发生改变 不会影响到a}
}

形参的改变,不会影响实参的值,形参只是用实参的值初始化自己的存储单元内容,在内存中有两个独立的存储空间

引用传递(传地址)

public class Demo {
​/*引用类型 在传递时,传的是对象的地址*/public static void main(String[] args) {Demo d = new Demo();Person zs = new Person("张三", 20);d.test(zs);//只是把对象的地址传递给了 pSystem.out.println(zs.name);//李四}
​/*
​*/public void test(Person p){ //p和zs指向的是同一个对象p.name = "李四";}
}

引用类型在传递的时候,传的是对象的地址,所以此时,形参和实参指向的是同一个对象,对形参进行操作那么也就是对实参操作

static关键字

static 静态修饰属性、方法、代码块、内部类

类变量,和类一样 只有一份

  • 被static修饰的内容 随着类的加载而加载

  • 优先于对象存在

  • 被所有对象共享

  • 可以通过类名直接调用

static String country = "中国"; //常量一般修饰为static

static修饰方法,类方法,静态方法不能使用非静态的成员变量,静态资源随着类先加载

非静态的成员变量随着对象的创建而加载

非静态方法可以使用静态变量,非静态方法必须通过对象来调用,对象创建前会先加载类

/*static修饰方法,类方法,静态方法不能使用非静态的成员变量,静态资源随着类先加载,非静态的随着对象的创建而加载*/
public static void test(){//System.out.println(name);// 会报错
}
​
/*非静态方法可以使用静态变量, 非静态方法必须通过对象来调用,对象创建之前先加载类*/
public void test1(){System.out.println(country);
}

代码块

类似一个没有名字的方法

代码块分为:

实例代码块:在创建对象之后执行,调用构造方法之前执行,每创建一次对象就执行一次

静态代码块:在类加载时执行,只执行一次,多个静态按照先后顺序执行

类什么时候加载?

main方法在哪个类中执行,这个类加载

创建某个类的对象

调用某个类中静态属性、方法

为了更好的组织类,java提供了包机制,用于区别类名的命名空间(是类路径中的一部分 地址)

避免类重名

按功能管理类

包名都小写

控制访问权限

访问权限修饰符

用来修饰类、成员变量、成员方法、内部类,控制对齐访问的权限

访问权限和包密切相关

public:公共的 类、成员变量、方法、内部类 可以任意被访问

protect:保护的 成员方法、变量、内部类 同包下、不同包的子类可以访问

default:默认的 类、成员变量、方法、内部类 同包下可以访问

private:私有的 本类中访问

相关文章:

面向对象复习(2)

面向对象(2) 对象与引用 java语言中除基本类型之外的变量都称之为引用类型 java中的对象时通过引用对其操作的 Car bm new Car(); 右边的new Car是以Car类为模板,调用无参构造函数,在堆空间中创建一个Car对象 左边的Car bm 在栈中创建了一个Car类型的引用变量,所谓Car的…...

python中使用numpy包的向量矩阵相乘

一直对np的线性运算不太清晰,正好上课讲到了,做一个笔记整个理解一下 1.向量和矩阵 在numpy中,一重方括号表示的是向量vector,vector没有行列的概念。二重方括号表示矩阵matrix,有行列。 代码显示如下: …...

ElasticSearch 学习(一)

目录一、Elasticsearch 简介二、Elasticsearch 发展史三、Elasticsearch 功能四、Elasticsearch 特点五、Elasticsearch 应用场景一、Elasticsearch 简介 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据…...

【新】华为OD机试 - 交换字符(Python)| 刷完获取OD招聘渠道

交换字符 题目 给定一个字符串 S 变化规则: 交换字符串中任意两个不同位置的字符 M S 都是小写字符组成 1 <= S.length <= 1000 输入 一串小写字母组成的字符串 输出 按照要求变换得到最小字符串 示例一 输入 abcdef输出 abcdef示例二 输入 bcdefa输出 acde…...

手把手教你解决传说中的NPE空指针异常

1. 前言最近有好几个初学java的小伙伴&#xff0c;甚至是学习到了JavaWeb、框架阶段的小伙伴也跑来问壹哥&#xff0c;该如何解决Java中的NullPointerException空指针异常。因为NPE是初学者特别常见的典型异常&#xff0c;所以壹哥在这里专门写一篇文章&#xff0c;来手把手地教…...

【pytorch安装】conda安装pytorch无法安装cpu版本(完整解决过程)

问题描述 在安装pytorch过程中&#xff0c;发现最后验证torch时总是返回结果为False&#xff0c;结果翻上去发现自己安装的是cpu版本的。 然后又通过conda去更换不同版本尝试&#xff0c;发现都是cpu版本的。 问题分析 通过conda安装pytorch是从源中搜索匹配指令中的文件&am…...

云计算ACP云服务器ECS实例题库

&#x1f618;作者简介&#xff1a;一名99年软件运维应届毕业生&#xff0c;正在自学云计算课程。&#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。&…...

面试题:作用域、变量提升、块级作用域、函数作用域、暂存性死区、var和let的区别

<script>var a 10;(function () {console.log(a)a 5console.log(window.a)var a 20;console.log(a)})() </script> 上述代码&#xff1a; 1、主要是涉及到变量提升和函数作用域&#xff0c;var a20这行代码会在函数作用域中提升var a 至最顶部&#xf…...

JAVA练习49-爬楼梯

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-爬楼梯 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 2月13日练习内容…...

深兰科技机器人商丘制造基地正式投产,助力商丘经济高质量发展

2月9日&#xff0c;深兰科技机器人商丘制造基地投产仪式在商丘市梁园区北航创新园隆重举行。商丘市人大常委会副主任、梁园区委书记张兵&#xff0c;梁园区区长薛天江、河南省装备制造业协会会长张桦&#xff0c;河南省机器人行业协会会长王济昌&#xff0c;深兰科技集团董事长…...

ES倒排索引/查询、写入流程

ES学习笔记 Elasticsearch学习笔记_巨輪的博客-CSDN博客 Elasticsearch学习之图解Elasticsearch中的_source、_all、store和index属性_BUse的博客-CSDN博客 倒排索引 倒排索引&#xff1a;ES倒排索引底层原理及FST算法的实现过程_es fst_Elastic开源社区的博客-CSDN博客 【…...

2023软考考哪个证书好?

软考有三个级别&#xff08;初级&#xff0c;中级和高级&#xff09;&#xff0c;这三个级别分别对应5个方向&#xff0c;下面这张图片呢&#xff0c;可以一目了然&#xff0c;一些小小建议&#xff01;&#xff01;&#xff01;遵循一个原则&#xff1a;首先选专业对口的科目&…...

一般人我劝你不要自学软件测试!!!

本人5年测试经验&#xff0c;在学测试之前对电脑的认知也就只限于上个网&#xff0c;玩个办公软件。这里不能跑题&#xff0c;我为啥说&#xff1a;自学软件测试&#xff0c;一般人我还是劝你算了吧&#xff1f;因为我就是那个一般人&#xff01; 软件测试基础真的很简单&…...

docker/docker-compose 安装mysql5.7

目录使用docker安装mysql5.7docker普通安装docker生产环境安装使用docker-compose 安装注意注意一:docker-compose权限问题注意二:docker pull 找不到镜像使用docker安装mysql5.7 docker普通安装 docker pull mysql:5.7 # 启动容器 docker run -p 3306:3306 --name mysql -e …...

【C++设计模式】学习笔记(6):Bridge 桥模式

目录 简介动机(Motivation)模式定义结构(Structure)要点总结笔记结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金…...

Allegro如何批量快速修改复用好的模块操作指导

Allegro如何批量快速修改复用好的模块操作指导 在做PCB设计的时候,相同模块可以用reuse复用的功能,可以大大提升效率,但是模块需要修改的时候,其它模块也要跟着修改,逐个再去复用一遍比较费时间,Allegro支持批量快速修改复用好的模块 前提是相同模块必须是相同的mdd文件…...

让我百思不得其解的infer究竟是怎么推导类型的?

情景再现 有这么一个条件类型的基本语法: T extends U ? X : Y; 如果占位符类型U是一个可以被分解成几个部分的类型&#xff0c;譬如数组类型&#xff0c;元组类型&#xff0c;函数类型&#xff0c;字符串字面量类型等。这时候就可以通过infer来获取U类型中某个部分的类型。 …...

E8-怎么实现根据表单内容自动生成标题

背景 可能有些小伙伴看到这个话题&#xff0c;觉得非常简单&#xff0c;在发起人步骤设置标题可编辑&#xff0c;在有关的控件中设置事件去更新标题就可以了呗。但如果想要标题字段里包含编号呢&#xff0c;而编号是在具体路径的高级设置里设置的&#xff0c;在某个出口生成的…...

《c语言深度解剖》--一套非常经典的笔试题

学习完c语言&#xff0c;需要对所学知识进行一个检测&#xff0c;下面有一套笔试题&#xff0c; 你有四十分钟进行检测&#xff0c;每道题五分&#xff0c;严格要求自己打分。 根据作者原话&#xff1a;在没有何提示的情况下,如果能得满分,那你可以扔掉本书了,因为你的水平已经…...

【数据结构与算法】单调队列 | 单调栈

&#x1f320;作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《数据结构与算法要啸着学》 &#x1f387;座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;…...

openh264解码h264视频帧主流程

一 解析一帧的入口int32_t WelsDecodeSlice (PWelsDecoderContext pCtx, bool bFirstSliceInLayer, PNalUnit pNalCur) {// 解码slicePDqLayer pCurDqLayer pCtx->pCurDqLayer;PFmo pFmo pCtx->pFmo;int32_t iRet;int32_t iNextMbXyIndex, iSliceIdc;PSlice pSlice &a…...

【个人笔记】C语言位域

一句话解释位域&#xff1a;指定结构体内变量的的位宽&#xff0c;从而节省空间 例子&#xff1a; #include <stdio.h> struct _test {int bit1:3; // 第一个字节0 ~ 2位 int :0; // 空域&#xff1a;表示第一个字节 3~7都为0int bit2:1; // 第二个字节第0位int :3;…...

ROS笔记(1)——ROS的核心概念

目录 节点与管理器 话题通信 服务通信 参数——全局共享字典 节点与管理器 节点——执行单元 &#xff08;1&#xff09;执行具体任务的进程、独立运行的可执行文件 &#xff08;2&#xff09;不同节点可使用不同的编程语言&#xff0c;可分布式运行在不同的主机 &#xff…...

动态SQL使用【JavaEE】

动态SQL使用 1. if 标签 判断一个参数是否有值&#xff0c;如果没值&#xff0c;那么就会隐藏 if 中的 sql 语法&#xff1a; <if test"username!null">username#{username} </if>表达式&#xff1a;username 的参数是否为空 如果结果为 true&#xff0c…...

leetcode刷题

1、stack栈相关 top()&#xff1a;返回一个栈顶元素的引用&#xff0c;类型为 T&。如果栈为空&#xff0c;返回值未定义。 push(const T& obj)&#xff1a;可以将对象副本压入栈顶。这是通过调用底层容器的 push_back() 函数完成的。 push(T&& obj)&#xff1…...

移动设备安全管理基础指南

什么是移动安全管理 &#xff08;MSM&#xff09; 移动安全管理是指为保护企业中的移动设备和企业数据而采取的行动。这些操作可以进一步被归类为反应性的或主动的&#xff0c;基于该操作是在数据和设备被破坏之前还是之后执行的。除了管理移动设备外&#xff0c;大多数MDM解决…...

【Java|多线程与高并发】 使用Thread 类创建线程的5种方法如何查看程序中的线程

文章目录前言线程创建1.继承Thread类重写run()方法如何查看程序中的线程?2.实现Runnable接口3.使用匿名内部类,继承Thread4.使用匿名内部类,实现Runnable5.⭐使用Lambda表达式,创建线程(重要)Thread 的常见构造方法总结前言 在这里主要补充说明一些问题,方便更好地理解下面的…...

零基础学MySQL(五)-- 详细讲解数据库中的常用函数

目录&#x1f387;一、聚合函数1️⃣count 函数&#xff08;1&#xff09;基本语法&#xff08;2&#xff09;基本练习&#xff08;3&#xff09;注意细节2️⃣sum 函数&#xff08;1&#xff09;基本语法&#xff08;2&#xff09;基本练习&#xff08;3&#xff09;注意细节3…...

第4章 流程控制-if-else,Switch,For循环(循环守卫,循环步长,倒叙打印),While循环,多重循环...

第 4 章 流程控制-if-else,Switch,For循环(循环守卫&#xff0c;循环步长&#xff0c;倒叙打印)&#xff0c;While循环&#xff0c;多重循环 4.1 分支控制 if-else 让程序有选择的的执行&#xff0c;分支控制有三种&#xff1a;单分支、双分支、多分支 4.1.1 单分支 1)基本语法…...

2.4G-WiFi连接路由器过程

一、概述 WiFi的数据通信基于802.11协议进行&#xff0c;无线AP在工作时会定时向空中发送beacon数据包&#xff0c;基站&#xff08;STA&#xff09;从beacon中解析出AP的名称、加密方式等信息&#xff0c;从而发起连接。 二、WiFi连接路由器的详细过程 WiFi连接过程主要可以…...

网站建设流程有/服务营销案例

为什么80%的码农都做不了架构师&#xff1f;>>> 行为型模式&#xff1a;Chain Of Responsibility 职责链模式 &#xff11;、请求的发送者与接受者 &#xff11;&#xff09;某些对象请求的接受者可能多种多样&#xff0c;变化无常...... &#xff12;&#xf…...

做资源下载网站好吗/中牟网络推广外包

1. 模式意图 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接受者之间的耦合关系。 在职责链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;知道链上的某一个对象决定处理此请求。发出这个请求…...

做商城网站需要什么条件/发广告平台有哪些

简介curl 是常用的命令行工具&#xff0c;用来请求 Web 服务器。它的名字就是客户端&#xff08;client&#xff09;的 URL 工具的意思。它的功能非常强大&#xff0c;命令行参数多达几十种。如果熟练的话&#xff0c;完全可以取代 Postman 这一类的图形界面工具。本文介绍它的…...

关于动物自己做的网站/seo优化方案模板

1、字符型输入框&#xff1a; &#xff08;1&#xff09;字符型输入框&#xff1a;英文全角、英文半角、数字、空或者空格、特殊字符&#xff0c;特别要注意单引号和&符号。不要直接输入特殊字符时&#xff0c;使用“粘贴、拷贝”功能尝试输入。 &#xff08;2&#xff0…...

图片上传网站变形的处理/seo网络营销招聘

目录 1. 下载IEDriverServer.exe 2. 将IEDriverServer.exe或IEDriverServer.64.exe放在C:\ProgramData\Anaconda3\Scripts下面 3. 测试代码 1. 下载IEDriverServer.exe 我在太平洋电脑网下载的&#xff0c;得到两个IEDriverServer.exe和IEDriverServer.64.exe&#xff0c;这…...

做视频网站视频/电脑优化工具

Linux指令篇:文件打印--lpd(转)名称&#xff1a; lpd使用权限&#xff1a; 所有使用者使用方式&#xff1a;lpd [-l] [#port]lpd 是一个常驻的打印机管理程序&#xff0c;它会根据 /etc/printcap 的内容来管理本地或远端的打印机。/etc/printcap 中定义的每一个打印机必须在 /v…...