JAVA面向对象之类和对象基本概念
2021/11/7 17:11:33
本文主要是介绍JAVA面向对象之类和对象基本概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 什么是对象
- 一 。两种变成思想:
- 二。如何运用面向对象思想
- 三。类和对象的关系
- 如何定义类
- 1. 如何描述对象
- 2.成员变量不初始化
- 3. 如何定义类:
- 成员方法详解
- JVM内存模型
- 1. 堆:
- 2. 栈:
- 3. 栈和堆的关系:
- 对象的创建过程
- 1. 创建对象:
- 2. 访问成员变量
- 3. 调用成员方法:c.run();
JAVA面向对象—类和对象基本概念
本文参考内容: 牛客网,此内容仅为本人的学习知识总结。
什么是对象
一 。两种变成思想:
- 面向过程:分析出解决问题的步骤,然后用函数逐一实现每一步,再一次调用这些函数。
- 面向对象:分析出系统中应包含哪些物体/事物/对象,以及它们之间的关系,再用特定于法描述这些对象和关系。
二。如何运用面向对象思想
三。类和对象的关系
- 类:抽象的,不是具体的实例。用于描述一批对象的信息
- 对象:具体的,是根据类的描述,由JVM创建出来的一个实例,这个过程叫做实例化。
- 举例:人:类 perth:对象
- 类是自定义的数据类型,通过这个类创建对象,实际上就是初始化这种类型的变量。
自定义的数据类型不能直接引用,只能用 new 初始化。
如何定义类
1. 如何描述对象
属性:对象的静态特征;用变量来描述,这样的变量叫成员变量。
行为:对象的动态特征;用方法来描述,这样的变量叫成员方法。
- 定义成员变量
语法:修饰符 数据类型 变量名 = 初始值; 不初始化就会给默认值 - 定义成员方法
语法:修饰符 返回类型 方法名(参数列表){…} 注:成员方法不能被static关键字修饰 没有返回类型用void,此事无需return
2.成员变量不初始化
当成员变量不初始化(不赋值)直接打印输出时,JVM会给它默认值,不同类型的默认值不同。
实例:
Game.java:
package nowcoder3.part02; /* * 成员方法详解 * */ public class Game { public static void main(String[] args) { Car c = new Car(); System.out.println(c.brand); System.out.println(c.color); System.out.println(c.maxSpeed); } }
Car.java:
package nowcoder3.part02; public class Car { //成员变量 String brand; String color; int maxSpeed; }
运行结果:
不同类型的默认值:
3. 如何定义类:
实列:
Game.java:
package nowcoder3.part01; //游戏类 public class Game { public static void main(String[] args) { //创建一个赛车 Car c = new Car(); //访问成员变量 c.brand="宝马"; c.color="黑色"; System.out.println(c.brand); System.out.println(c.color); System.out.println(c.maxSpeed); //访问成员方法 c.run(); //再创建一个对象 Car r = new Car(); r.brand = "大奔"; r.color = "绿色"; System.out.println(r.brand); System.out.println(r.color); System.out.println(r.maxSpeed); r.run(); //直接打印对象 System.out.println(c); System.out.println(r); } }
Car.java:
package nowcoder3.part01; //赛车类 public class Car { //成员变量 String brand; String color; int maxSpeed = 500; //成员方法 void run(){ System.out.println("Running..."); } }
运行结果:
因为两个对象的哈希码值(地址)并不同,所以这是两个对象。
成员方法详解
- 成员方法可以直接访问当前类的所有成员变量;
- 成员方法可以直接访问当前类的所有成员方法;
- 成员方法参数可以是基本数据类型,也可以是引用数据类型,包括自定义的类型。
实例:
Game.java:
package nowcoder3.part02; /* * 成员方法详解 * */ public class Game { public static void main(String[] args) { Car c1 = new Car(); c1.brand="宝马"; c1.color="黑色"; c1.maxSpeed=666; c1.run(); Car c2 = new Car(); c2.brand="奔驰"; c2.color="红色"; c2.maxSpeed=999; c2.run(); } }
Car.java:
package nowcoder3.part02; public class Car { //成员变量 String brand; String color; int maxSpeed; //行驶 void run(){ //方法内声明的变量是局部变量,只能在方法内访问 //调用成员变量 System.out.println(color + brand +"速度是" + maxSpeed); //调用成员方法 startup(); speedup(); stop(); } //启动 void startup(){ System.out.println(brand+"启动!"); } //加速 void speedup(){ System.out.println(brand+"加速!"); } //刹车 void stop(){ System.out.println(brand+"刹车!"); } }
运行结果:
JVM内存模型
JVM启动时会向系统申请一块内存,它将这块内存划分为若干个子区域,用以存放不同形式的。数据。
1. 堆:
堆用于存储引用类型的数据;
这些数据相互之间是无序的; .
堆中数据是可以反复使用的;
JVM会定期清理堆中的垃圾数据;
2. 栈:
栈以方法为单元存储数据,这样的单元叫方法栈帧;
栈中存放的数据是有序的,遵循着先进后出的规则;
方法调用结束后,它占有的方法栈帧将会立刻释放;
注意:出栈入栈顺序不同
3. 栈和堆的关系:
对象的创建过程
通过实例理解:
public static void main(String[] args) { Car c = new Car(); c.brand="宝马"; c.color="黑色"; c.maxSpeed=500; c.run(); }
1. 创建对象:
Car c = new Car();
3步 main()入栈—>创建对象—>赋值
2. 访问成员变量
c.brand="宝马"; c.color="黑色"; c.maxSpeed=500;
3. 调用成员方法:c.run();
这篇关于JAVA面向对象之类和对象基本概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?