js--6

1.类与对象

类是对象共同特征的描述(设计图),对象是真实存在的具体实例在 Java 中,必须先定义类,才能通过 new 类名() 创建对象。

2.定义类

1.类的组成:成员变量(属性,名词)、成员方法(行为,动词)、构造器等语法:

public class 类名 { // 成员变量、成员方法等 }

3.获取对象

创建对象的语法:类名 对象名 = new 类名();

例如:Phone p = new Phone();

4.使用对象

访问成员变量:对象名.成员变量

调用成员方法:对象名.成员方法(...)

如果成员变量被 private 修饰,需通过 get/set 方法访问。

5.成员变量默认值

基本类型:byte/short/int/long → 0;

float/double → 0.0;

boolean → false

引用类型(类、接口、数组、String)→ null

局部变量没有默认值,必须手动初始化。封装对象代表什么,就封装对应的数据 和行为通过 private 隐藏数据,提供 public 的 get/set 方法来访问和修改,保 证数据安全。

6.private 关键字

1.权限修饰符,修饰成员变量和成员方法被修饰的成员只能在本类中访问,外部需通过 get/set 方法操作。

2. get/set 方法setXxx(参数):给成员变量赋值并做合法性校验getXxx():获取成员变量的值例如:setAge(int a) 可以限制年龄范围,getAge() 返回年龄。

7.就近原则

当局部变量与成员变量重名时,优先使用局部变量谁离代码执行点更近就用谁,例如方法内的局部变量 age 会覆盖类中的成员变量 age。

8.构造方法

作用:创建对象时由虚拟机自动调用,给成员变量初始化格式:修饰符 类名(参数) { 方法体 }特点:方法名与类名完全一致,没有返回值类型(连 void 都不写),不能 return 数据。9.构造方法注意事项-

若未定义构造方法,系统会默认提供一个无参构造方法- 若定义了构造方法,系统不再提供默认无参构造- 支持重载(无参和带参构造方法共存)- 推荐手动编写无参和带全部参数的构造方法定义带参构造后,如需使用无参构造创建对象,必须手动添加无参构造方法。

10.标准 JavaBean 类

1. 类名见名知意

2. 成员变量用 private 修饰

3. 提供无参构造和带全部参数的构造

4. 为每个成员变量提供 setXxx() 和 getXxx() 方法是 Java 中编写实体类的规范,保证封装性和可操作性。

10.this 关键字

本质:代表方法调用者的地址值常用于区分重名的成员变量与局部变量(如 this.age = age),也可调用本类的其他构造方法(this(...))。

11.成员变量 vs 局部变量

1.位置:成员变量在类中、方法外;

2.局部变量在方法内或方法参数上初始化:成员变量有默认值;

3.局部变量必须手动赋值内存:成员变量在堆内存;

4.局部变量在栈内存生命周期:成员变量随对象创建 / 销毁;

5.局部变量随方法调用 / 结束作用域:成员变量整个类有效;

6.局部变量仅当前方法有效就近原则是两者重名时的核心处理规则。

12.Scanner 输入体系

第一套:nextInt()/nextDouble()/next()(遇到空格、制表符、回车就停止)

第二套:nextLine()(可以接收空格,遇到回车才停止)混合使用时注意:next() 系列会留下换行符,导致后续 nextLine() 读取空字符串,需额外处理(例如在 nextInt() 后调用一次 nextLine() 清空换行)。

相关推荐
特立独行的猫A1 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
金銀銅鐵1 小时前
从一个类名到一张类图:用反射自动生成 PlantUML
java·后端·uml
nice_lcj5201 小时前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist
微小的鱼2 小时前
Linux的渲染与显示系统链路
android·java·linux
Hhy_11072 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
starzy19902 小时前
深入理解Scala函数定义:从方法到函数的类型跨越
开发语言·scala
starzy19902 小时前
深入理解Scala递归函数:从栈溢出到尾调用优化
开发语言·scala
三*一2 小时前
Mapbox‑GL JS 多边形折点编辑工具:实现原理、功能拆解与踩坑总结
开发语言·javascript·ecmascript
YSL0701242 小时前
C++基础
开发语言·c++
若亦_2 小时前
Java中关于this的三种用法
java·开发语言·intellij-idea