网站首页 > java教程 正文
二、面向对象之封装(encapsulation)
1、class和对象
第一步:我们要造车了,必须有个造车的说明书。
第二步:根据说明书,造一百辆车。
其实说明书就是在描述车的具体信息,就是对信息的封装。
public class Car { // 汽车的型号 String brand; // 汽车的颜色 String color; // 汽车的长度 long length; } |
你看,这是不是用汽车的基本信息封装了一个汽车的说明,这叫做类,就是汽车类,一个描述汽车的类。
再看看,我们是怎么根据说明书去构建具体的汽车的,每个具体的汽车我们称之为一个【实例对象】。
public static void main(String[] args) { Car car1 = new Car(); car1.brand = "本田"; car1.color = "red"; car1.length = 4120; Car car2 = new Car(); car2.brand = "宝马"; car2.color = "white"; car2.length = 5087; Car[] cars = {car1,car2}; } |
所以明白了吗?
Car是类,只有一份。
car1、car2...car100是根据类构建出来的【实例对象】,可以有很多个。
2、多出来的数据类型
划重点了:
1、之前我们学习的八种基础数据类型,这些数据是直接存在栈中的。
2、从今天开始,我们的数据类型就多了,汽车是一种数据类型, 大炮是一种数据类型,美女是一种数据类型,所有的类都是数据类型,我们统称为:【引用数据类型】。
此刻起,我们可能才真正地开始了解class这个关键字,他就是用来创建一个类。
像car1、car2、cars这些叫引用,它是指向内存中的一块区域。存放这些实例对象的空间,我们称之为堆。
不妨我们看看,这个【车队】在内存中的结构图:
小知识:
类型指针一般为4字节,在关闭压缩普通对象指针时( -XX:+UseCompressedOops)为8字节,UseCompressedOops默认是开启的,只有虚拟机内存达到32G以上,4个字节已经无法满足寻址需求时,才需要关闭该参数。
猜你喜欢
- 2024-11-13 Java面向对象三大特征:封装、继承、多态
- 2024-11-13 利用Java注解的简单封装,进行的一次优化
- 2024-11-13 如何封装原生的 Java NIO 以及扩展?详细到让你分分钟搞定Netty
- 2024-11-13 Java面向对象——基础2 封装、继承、多态
- 2024-11-13 想要 Spring Data JPA/MongoDB 更易用,你应该这样封装
- 2024-11-13 Java面向对象高级特性-封装(java面向对象三大特点)
- 2024-11-13 Java基础类型与封装类型的区别与联系
- 2024-11-13 java包装类的自动封装、自动拆箱和缓存
- 2024-11-13 java程序员必备的基础知识_java面向对象之封装(二)
- 2024-11-13 Java面试基础回顾03-封装(java基础面试题及答案)
你 发表评论:
欢迎- 06-15Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 06-15推荐一款超棒的SpringCloud 脚手架项目
- 06-15IDEA将项目打包成jar包(idea打包普通java项目)
- 06-15Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 06-15记录Dockerfile将jar包构建成部署所需的镜像
- 06-15项目基础部署汇总八---linux下xxl-job安装
- 06-15Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 06-15终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 最近发表
-
- Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 推荐一款超棒的SpringCloud 脚手架项目
- IDEA将项目打包成jar包(idea打包普通java项目)
- Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 记录Dockerfile将jar包构建成部署所需的镜像
- 项目基础部署汇总八---linux下xxl-job安装
- Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 如何将本地JAR文件添加到Maven项目中
- Java 类隔离应用:多 Jar 包支持(java接口隔离原则)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)