JAVA学习第五天
一、今天干了什么
首先明确面向对象学习三条主线:
(1)Java类及类的成员:属性、方法、构造器;代码块、内部类;
(2)面向对象的三大特征:封装性、继承性、多态性、(抽象性);
(3)其他关键字:this、static、final、abstract、interface、package……
类是抽象的,对象是类的具体。
1.类的成员:
(1)属性=成员变量=域=字段=field
(2)方法=成员方法=函数=method
2.类和对象的实现方法:
(1)创建类,设计类的成员
(2)创建类的对象
(3)通过“对象.属性”和“对象.行为”的方法调用对象的结构
3.类和对象的创建:
class Person {
String name="Yan Shihao"; int age=19; double height=173.0; double weight=65;
void names
(
System.out.println(name);
)
}//莫得分号 Person Me = new Person();
4.调用属性和方法:“对象.属性”、“对象.方法”
5.对象内存解析:
堆:存储对象实例;
栈(虚拟机栈):存储局部变量等;
方法区:存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码
6.属性(成员变量)与局部变量的对比:
相同点:
(1)定义变量的格式相同:数据类型 变量名 = 变量数值
(2)先声明后使用
(3)变量都有其对应的作用域
不同点:
(1)在类中的声明位置不同:
属性:直接定义在类的一对{}内;局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量;
(2)关于权限修饰符的不同:
属性:可以在声明时指明其权限,使用权限修饰符;
(常用的权限修饰符:private、public、protected)
局部变量:不可以使用权限修饰符。
(3)默认初始化值的问题:
属性:根据其类型有默认初始化值;
局部变量:没有默认初始化值,意味着我们使用之前必须进行显示赋值。
(特别的:形参在调用时再赋值即可!)
(4)在内存中加载的位置不同:
属性:加载到堆空间中(非static,static类型加载到方法区);
局部变量:加载到栈空间中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异