学习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("静态方法");
}

内存图:

在这里插入图片描述

简答题

1.面向对象和面向过程的区别

面向过程面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资

源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用

面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。

面向对象面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所

以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程

总结

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postgresql 12.2 + PostGIS 3.0.1 安装部署

参考文档: 按照该文档安装即可,如果遇到报错,可以参考下文: https://blog.csdn.net/weixin_41166785/article/details/127674169 所需的安装包 在资源里面(我看下怎么可以不用积分下载) 1、no acceptable…

windows安装RabbitMq,修改数据保存位置

1、先安装Erlang, Erlang和RabbitMQ有版本对应关系。 官网RabbitMQ与Erlang版本对应RabbitMQ Erlang Version Requirements — RabbitMQ 2、安装RabbitMQ。 3、修改数据保存地址。找到安装目录下的sbin文件夹,找到rabbitmq-env.bat,编辑文件…

Nacos入门到精通

Nacos概述: 全称Dynamic Naming and Configuration Service,是一个Nacos,全称Dynamic Naming and Configuration Service,是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。其核心功能主要包括服务发现、健康检查…

Flink启动Yarn Session报错:Couldn‘t deploy Yarn session cluster

Flink版本:1.1.3 启动Yarn Session的语句:bin/yarn-session.sh -nm test -d 报错截图如下: 仅通过ERROR信息只能知道是yarn session集群未能正常启动,因此继续向下查找: 找到报错信息的Caused by部分: 报…

基于vue+Spring Boot家政服务人员预约系统iph9d

通过对家政服务管理内容的学习研究,进而设计并实现一个家政服务系统。系统能实现的主要功能应包括即时通讯、通讯回复、预约订单、接单信息、服务费用管、服务评价的一些操作。还有可以正确的为用户服务,准确显示当前信息[5]。 开发软件有很多种可以用&…

AI工具(20240116):Copilot Pro,Fitten Code等

Copilot Pro Copilot Pro是微软推出的Copilot的付费增强版本,通过提供优先访问GPT-4等最新AI模型,大大提升用户的创造力和工作效率。该服务可与Microsoft 365订阅捆绑使用,支持在Word、Excel等Office应用内直接使用Copilot功能,帮助用户更快速地起草文档、电子邮件和演示文稿等…

Linux 入门命令大全汇总 + Linux 集锦大全 【20240115】

文章目录 Linux 入门命令大全汇总Linux 集锦大全更多信息 Linux 入门命令大全汇总 别有一番风趣的alias 刚刚好合适的 apropos 命令 迷你计算器 bc 可看黄道吉日的 cal 全文可查看: Linux入门命令大全全文 Linux 集锦大全 linux终端中最漂亮的几款字体介绍及…

OpenCV——多分辨率LBP的计算方法

目录 一、算法原理1、原理概述2、参考文献 二、代码实现三、结果展示 OpenCV——多分辨率LBP的计算方法由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述 基本LBP算子虽然在早期…

快速入门Java NIO(Not I/O)的网络通信框架--Netty

Netty 入门 了解netty前需要对nio有一定认识,该笔记基础来自bilinbili黑马,在此基础上自己学习的笔记,添加了一些自己的理解 了解java 非阻塞io编程 1. 概述 1.1 Netty 是什么? Netty is an asynchronous event-driven network application framework for rapid …

23/76-LeNet

LeNet 早期成功的神经网络。 先使用卷积层来学习图片空间信息。 然后使用全连接层转换到类别空间。 #In[]LeNet,上世纪80年代的产物,最初为了手写识别设计from d2l import torch as d2l import torch from torch import nn from torch.nn.modules.loss import CrossEntropyLos…

Vue实战:两种方式创建Vue项目

文章目录 一、实战概述二、实战步骤(一)安装Vue CLI脚手架1、从Node.js官网下载LTS版本2、安装Node.js到指定目录3、配置Node.js环境变量4、查看node版本5、查看npm版本6、安装Vue Cli脚手架7、查看Vue Cli版本 (二)命令行方式构建…

Python多线程爬虫——数据分析项目实战详解

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言爬虫获取cookie网站爬取与启动CSDN爬虫爬虫启动将爬取内容存到文件中 多线程爬虫选择要爬取的用户 线程池 爬虫 爬虫是指一种自动化程序,能够模…

Jmeter 测试脚本录制器-HTTP 代理服务器

Jmeter 测试脚本录制器-HTTP 代理服务器 Jmeter 配置代理服务器代理服务器获取请求地址示例图配置步骤 浏览器配置代理Google 浏览器插件配置代理windows 本地网络配置代理 启动录制,生成证书生成证书导入证书Jmeter 配置证书 浏览器点击页面,录制请求地…

【深度学习】RTX2060 2080如何安装CUDA,如何使用onnx runtime

文章目录 如何在Python环境下配置RTX 2060与CUDA 101. 安装最新的NVIDIA显卡驱动2. 使用conda安装CUDA Toolkit3. 验证onnxruntime与CUDA版本4. 验证ONNX需求版本5. 安装ONNX与onnxruntime6. 编写ONNX推理代码 如何在Python环境下配置RTX 2060与CUDA 10 RTX 2060虽然是一款较早…

AI嵌入式K210项目(11)-SPI Flash读写

文章目录 前言一、K210的SPI二、Flash介绍三、实验过程总结 前言 这一章我们来学习下SPI及其应用,SPI 是一种高速的,全双工,同步的通信总线,由于其高速、同步和简单的特性,被广泛应用于各种微控制器和外围设备之间的通…

微信小程序防止截屏录屏

一、使用css添加水印 使用微信小程序原生的view和css给屏幕添加水印这样可以防止用户将小程序内的隐私数据进行截图或者录屏分享导致信息泄露,给小程序添加一个水印浮层。这样即使被截图或者拍照,也能轻松地确定泄露的源头。效果图如下: 代码…

MongoDB认证考试小题库

Free MongoDB C100DBA Exam Actual Questions 关于MongoDB C100 DBA 考试真题知识点零散整理 分片架构 应用程序 --> mongos --> 多个mongod对于应用来说,连接分片集群跟连接一台单机mongod服务器一样分片好处, 增加可用RAM、增加可用磁盘空间、…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(3)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

F-44 显示字段调整补充

F-44 显示字段调整补充 网上有段资料清账格式的设置与账号相关,通过此次设置后,下次F-51付款清账时,系统默认按此格式显示。如果在格式设置中找不到适合的格式,用户可以自定义格式,通过事务代码O7Z4S配置行格式&#…

AI对决:ChatGPT与文心一言的比较

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文…