05 · 类和对象
我的原话
- 3/23:「类就像一个巧克力加工厂,而对象就是加工出来的具体的一个巧克力。」✅
- 3/23:「class LoginSystem 为什么不能加 public?」「一个类应该放在哪里?我其实是随便放的。」
- 3/23:「属性是固定不变的值。」❌
- 10/12:「我之前把方法前面的 public 与类前面的 public 搞混了」
类里写两样:属性(有什么)+ 方法(能干什么)
demo1 的 entity/User.java(4 月我自己写的):id、username、password + getter/setter
文件名规则(真跑过,java复习/t8)
Dog.java 里写 public class Cat → 错误:类 Cat 是公共的, 应在名为 Cat.java 的文件中声明
- 一个文件两个 public 类 → 同样报错
public class Pet + 不带 public 的 class Cat → 通过,生成 Pet.class、Cat.class
- 为什么:编译器按名字直接找文件;正规项目 = 一个类一个文件(demo1 就是)
认零件(public/private 只管「谁能用」,不区分类和方法)
| 是什么 |
长相 |
| 类 |
[public] class 类名 { } ← 看到 class |
| 属性 |
[private] 类型 名字; ← 没括号、分号结尾 |
| 方法 |
[public] 返回类型 方法名(参数) { } ← 有括号 |
| 构造方法 |
[public] 类名(参数) { } ← 没返回类型 |
属性能不能改
- 属性能改(u2.name = "李四")
private ≠ 不能改,= 外人不能直接碰,类自己的方法(setter)能改
u.name = "李四"(name 是 private)→ 编译错:name 在 User 中是 private 访问控制
u.setName("李四") → ✅ 改成了
- 真正「固定不变」的是 final:
final int MAX = 100; MAX = 200; → 编译错:无法为 final 变量 MAX 分配值
题
| 题 |
我答 |
结果 |
| Order 类 4 行各是什么 |
类、属性、方法、构造方法 |
✅ |
| 「属性是固定不变的值」对吗 |
不对;private 可能不能改,public 能改 |
结论 ✅ 理由 ❌:private 也能改(走 setter),不变的是 final |