学习JavaEE的日子 day11 初识面相对象

day11

1.初识面相对象

1.1 类和对象的理解

* 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合

* 简单理解:类就是对现实事物的一种描述

类的组成

* 属性:指事物的特征,例如:手机事物(品牌,价格,尺寸)

* 行为:指事物能执行的操作,例如:手机事物(打电话,发短信)

类和对象的关系

* 类:类是对现实生活中一类具有共同属性和行为的事物的抽象

* 对象:是能够看得到摸的着的真实存在的实体

* 简单理解:*类是对事物的一种描述,对象则为具体存在的事物*

1.2 类的定义

类的组成是由属性和行为两部分组成

* 属性:在类中通过成员变量来体现(类中方法外的变量)

* 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

类的定义步骤:

①定义类

②编写类的成员变量

③编写类的成员方法

public class 类名 {

// 成员变量

变量1的数据类型 变量1;

变量2的数据类型 变量2;

// 成员方法

方法1;

方法2;

}

1.3 对象的使用

创建对象的格式:

* 类名 对象名 = new 类名();

调用成员的格式:

* 对象名.成员变量

* 对象名.成员方法();

1.4 案例

需求:创建人类的对象,并操作对象

分析:

​ 人类 - Person

​ 属性:name、sex、age

​ 方法:eat、sleep

步骤:

​ 1.创建Person类,属性、方法

​ 2.创建Person类的对象

​ (先创建Person,再在主方法中声明…)

   
public class Test01 {
public static void main(String[] args) {
		
		//创建对象
		Person p = new Person();//p--引用对象
		
		//设置属性
		p.name = "巴得伟";
		p.sex = '男';
		p.age = 23;
		
		//获取属性
		System.out.println(p.name);
		System.out.println(p.sex);
		System.out.println(p.age);
		
		//调用成员方法
		//注意:成员方法使用引用对象,调用对象
		p.eat();
		p.sleep();
		
		//调用静态方法
		//注意:静态方法使用类名,调用
		Person.method();
	}
}

在这里插入图片描述

1.4 成员变量和局部变量的区别

类中位置不同:成员变量(类中方法外)局部变量(方法内部或方法声明上)

内存中位置不同:成员变量(堆内存)局部变量(栈内存)

生命周期不同:成员变量(随着对象的存在而存在,随着对象的消失而消失)局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)

初始化值不同:成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用

在这里插入图片描述

注:

对象在堆上还是栈上不仅取决于其是基本数据类型还是引用数据类型,还取决于其定义的位置,如果一个基本数据类型是成员变量,那么也存在堆上。

总结:方法内的是局部变量(栈里面),方法外的是成员变量(堆里面)

案例:

public class Person {
/** 成员变量
    成员属性/成员变量

 注意:属于对象的变量,系统会赋默认值,该类所有的成员方法都能使用该变量

成员变量的默认值:

     整数类型:0

     类型:0.0

     字符类型:' '

     布尔类型:false

     引用类型:null
        */
    String name;
	char sex;
	int age;
//成员方法
public void eat(){
	
	//局部变量:方法里的变量,必须初始化后,才能使用,其作用域在方法内
	int i = 100;
	
	System.out.println("吃饭饭 -- " + i);
}

public void sleep(){
	System.out.println("睡觉觉");
}

//静态方法
//注意:静态方法不能使用成员变量
public static void method(){
	System.out.println("静态方法");
}

内存图:

在这里插入图片描述

总结:

多个对象在堆内存中,都有不同的内存划分,成员变量存储在各自的内存区域中,成员方法多个对象共用的一份

方法没有实例化,对象才有实例化,eg: Person p=new Person();//这个就是实例化

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用LM Studio:2分钟在本地免费部署大语言模型,替代ChatGPT

你想在本地使用类似ChatGPT 的大语言模型么?LM Studio 可以帮你2分钟实现ChatGPT的功能,而且可以切换很多不同类型的大语言模型,同时支持在Windows和MAC上的PC端部署。 LM Studio是一款面向开发者的友好工具,特别适合那些想要探索…

生物信息学中的可重复性研究

科学就其本质而言,是累积渐进的。无论你是使用基于网络的还是基于命令行的工具,在进行研究时都应保证该研究可被其他研究人员重复。这有利于你的工作的累积与进展。在生物信息学领域,这意味着如下内容。 工作流应该有据可查。这可能包括在电脑…

C语言督学营(高级阶段)

文章目录 高级阶段19.C语言语法进阶1.条件运算符、逗号运算符(1)条件运算符 / 三目运算符   ? :(2)逗号运算符   , 2.自增自减运算符3.位运算符:按位或、按位异或、按位取反(1)逻辑与、按位与、左移、右移(2)有符号数右移 vs 无符号数右移(3)按位与、按位或、按位…

第六讲_css盒子模式

css盒子模型 1. 长度单位2. 盒子模型的组成2.1 盒子模型内容2.2 盒子模型内边距2.3 盒子模型边框2.4 盒子模型外边距 1. 长度单位 px&#xff1a;像素em&#xff1a;相对于当前元素或父元素的 font-size 的倍数 <style>.parent {height: 500px;width: 500px;background…

Maintaining Performance with Less Data(待补)

文章目录 AbstractIntroductionPrevious WorkIncreasing data useReducing data useVariable data useContribution MethodsDatasetsHardwarePerformance MetricsNetwork Architecture ExperimentationBenchmarkData stepobserve Data IncrementData Cut DiscussionConclusion …

一文了解Git(所有命令)附带图片

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…

使用QPushButton实现计算机

1. 按钮类&#xff1a;QPushButton 1.1 信号 void clicked(bool checked false)//被点击触发void pressed()//当按下按钮时发出此信号void released()//当松开按钮时发出此信号void toggled(bool checked)//每当可检查按钮改变其状态时&#xff0c;都会发出此信号。1.2 实现按…

网页设计工作室网站Web前端制作个人网页(html+css+javascript)网页设计网站模板采用DIV CSS布局制作,网页作品有多个页面

网页设计工作室网站Web前端制作个人网页(htmlcssjavascript)网页设计网站模板采用DIV CSS布局制作&#xff0c;网页作品有多个页面 【网页设计工作室网站Web前端制作个人网页(htmlcssjavascript)网页设计网站模板采用DIV CSS布局制作&#xff0c;网页作品有多个页面】 https://…

怎样的摆渡系统,能实现安全可管控的跨网数据传输?

大数据时代&#xff0c;数据在流通与传输的过程中&#xff0c;更需要注意到数据的安全防护&#xff0c;护航数据价值。“让数据主宰一切的隐忧”&#xff0c;数字战争的时代&#xff0c;各国早已认识到网络安全愈发重要&#xff0c;数据也成为各国发展的重要武器。 出于安全性和…

GB28181视频汇聚平台EasyCVR级联后,部分通道视频无法播放是什么原因?

GB28181协议智慧安防平台EasyCVR是基于各种IP流媒体协议传输的视频汇聚和融合管理平台。视频流媒体服务器EasyCVR采用了开放式的网络结构&#xff0c;支持高清视频的接入和传输、分发&#xff0c;平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制…

Cesium笔记 初始化 原生Cesium

1、创建vue项目 vue create my_demo 2、下载Cesium 可以从官网下载&#xff0c;也可以使用node下载 npm install cesium 3、把node_modules文件夹中下载得Cesium&#xff0c;移出到public文件夹下 4、将Cesium.js 以及样式文件widgets.css在index.html中引用 <!DOCT…

麒麟KYLINOS上使用命令设置声音

原文链接&#xff1a;麒麟KYLINOS上使用命令设置声音 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在麒麟KYLINOS操作系统上使用命令行设置系统声音的方法。在某些情况下&#xff0c;特别是当您需要在多台机器上批量设置声音或在定制系统镜像时&#xff0c;使…

Positive证书——平价证书的最好选择

1. 经济实惠 Positive证书以其经济实惠的价格而闻名。对于小型企业或刚刚起步的网站来说&#xff0c;成本是一个重要的考虑因素。与其他高价SSL证书相比&#xff0c;Positive证书提供了同样强大的加密技术&#xff0c;但价格更为亲民。这使得任何人都能够为其网站提供安全性&a…

GEE计算Landsat8的NDVI

目录 前言源代码结果 前言 NDVI&#xff08;近红-红&#xff09;/&#xff08;近红红&#xff09; normalizedDifference方法是&#xff08;A-B&#xff09;/&#xff08;AB&#xff09;的计算方法 计算NDVI一般用来配合其他反演参数&#xff0c;构造指数或者数据升降尺度。 …

Taro+vue3 实现选座位 功能 以及座位显示

1.类似选座位那种功能 我的功能座位 不是html元素 而是 座位图片 都是图片 const onConfirm () > {// const area_arr selectedSeat.value.map((item) > {// return item.areaId;// });// const abc isRepeat(area_arr);// if (!abc) {// Taro.showToast({//…

深入剖析pcap中的网络异常:TTL过期攻击、ARP中毒、TCP重传与重叠碎片等

网络流量数据包捕获是网络安全领域的重要部分&#xff0c;而pcap文件则是这一过程的常见载体。为了深入解析pcap文件中潜在的可疑网络流量&#xff0c;我们需要运用强大的网络安全威胁评估与审计工具。这些工具能够帮助我们捕捉、记录、检测和诊断网络中的数据传输问题&#xf…

双碳管理系统任务需求分析(第10套)

需求规格说明书 一、引言 &#xff08;一&#xff09;项目背景 编写本需求规格说明书的目的是为了详细呈现碳足迹产品需求和系统的功能描述&#xff0c;以进一步定制应用软件系统开发的细节问题&#xff0c;便于与项目开发协调工作。本文档面向的读者主要是项目委托单位的管…

vue3 组合式 API 在 onMounted 中调用 dom 报错 Initialize failed: invalid dom.

问题 在开发的过程中&#xff0c;项目中需要用到 echarts&#xff0c;引入后在渲染的过程中报错了&#xff1a;Initialize failed: invalid dom. 这个报错表示元素在未渲染完成的情况下就被调用了&#xff0c;作者在以前也遇到过这种情况&#xff0c;在 vue2 中正常来说将 ech…

控制注塑机PQ比例阀放大器

控制不带电反馈的单或双比例电磁铁的博世力士乐&#xff08;Bosch Rexroth&#xff09;、伊顿威格士&#xff08;EATON Vickers&#xff09;、油研&#xff08;YUKEN&#xff09;、贺德克&#xff08;HYDAC&#xff09;、大金&#xff08;DAIKIN&#xff09;、不二越&#xff0…

性能优化--实战利用arthas排查java服务cpu占用过高的问题

使用jps -l查看目前的java应用进程 启动arthas&#xff0c;选择需要监控的进程 dashboar查看该应用整体情况 使用thread命令&#xff0c;查看占用cpu过高的几个线程ID 然后使用thread 线程ID查看具体线程在执行哪些内容&#xff0c;可以看到对应的类和方法 正在上传… 重…