当前位置: 首页 > news >正文

Java 学习笔记(基础篇6)

面向对象基础

1. 类和对象

(1) 示例:

public class Student {String name = "张三";int age = 23;public void study() {System.out.println("学习 Java");}public void eat() {System.out.println("吃饭");}
}
public class Test {public static void main(String[] args) {Student stu = new Student(); // 创建对象stu.study();  // 使用对象的成员方法stu.eat();    // 使用对象的成员方法}
}

(2) 自动对齐快捷键

打开需要格式化的 Java 文件后,按下快捷键:

  • Windows/LinuxCtrl + Alt + L

(3) private 关键字

作用:private 可以修饰成员(成员变量和成员方法),作用是保护成员不被别的类使用,被private修饰的成员只能在本类中才能访问。

使用:针对private修饰的成员变量,如果需要被其他类使用,应提供相应的操作。
(1)提供 get 变量名() 方法,用于获取成员变量的值,方法用public修饰;
(2)提供 set 变量名(参数)方法,用于设置成员变量的值,方法用public修饰。

示例:

public class GirlFriend {private String name;private int age;private String gender;public void setName(String n) {name = n;}public String getName() {return name;}
}

Q1:为什么方法前没有 static 修饰?

  • 定义static 修饰的成员(变量或方法)属于类本身,而非类的实例(对象)。
  • setName 和 getName 操作的是对象的非静态成员变量 name(每个对象的 name 是独有的),必须通过对象实例调用,因此不能用 static 修饰。

Q2:setter 与 getter 方法的设计逻辑

  • setter 方法(如 setName):
    作用是设置成员变量的值,通常接收参数并赋值,无需返回结果,因此用 void,且无 static(依赖对象实例)。

  • getter 方法(如 getName):
    作用是获取成员变量的值,需要将值返回给调用者,因此必须指定返回值类型(与成员变量类型一致),且无 static(依赖对象实例)。

Q3:为什么使用 name = n?

  • name 是类中定义的成员变量(属于对象的属性),作用域是整个类。
  • n 是方法 setName 的参数变量,作用域仅限于当前方法内部。
    这句代码的意思是:把外部传入的参数 n 的值,保存到当前对象的 name 成员变量中。

(4) this 关键字

  • 用来解决局部变量与成员变量同名的问题,明确区分两者。
public class Student {String name;public void setName(String name) {this.name = name;  // 使用 this 关键字来区分成员变量和局部变量}
}

2. 构造方法

(1) 定义:构造方法用于初始化对象的成员变量。构造方法的名称必须与类名相同,且没有返回值类型。

(2) 注意事项:

① 构造方法的创建:如果没有定义构造方法,系统将给出一个默认的无参数构造方法;如果定义了构造方法,系统将不再提供默认的构造方法。

② 构造方法的重载:如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。

public class Student {String name;int age;public Student() {  // 无参数构造方法this.name = "默认";this.age = 18;}public Student(String name, int age) {  // 带参数构造方法this.name = name;this.age = age;}
}

③ 推荐的使用方式:无论是否使用,都手工书写无参数构造方法。

3. JavaBean 的规范

(1) 类的访问权限:public 修饰

(2) 成员变量:私有(private)封装

(3) 访问方法:提供公共的 getter 和 setter

(4) 构造方法:必须包含无参数构造

4. 成员变量和局部变量

(1) 成员变量:类中方法外的变量。

(2) 局部变量:类中方法中的变量。

(3) 成员变量和局部变量的区别

http://www.dtcms.com/a/340253.html

相关文章:

  • 29.Linux rsync+inotify解决同步数据实时性
  • 【Tech Arch】Apache HBase分布式 NoSQL 数据库
  • 签名应用APP分发平台的微服务化部署是什么?其有哪些优势?
  • 微服务自动注册到ShenYu网关配置详解
  • mysql数据恢复
  • WT2606B 驱屏语音芯片新增蓝牙功能:功能集成一体化,产品升级自动化,语音交互无线化,场景应用普适化!
  • Java 性能优化实战(二):JVM 调优的 5 个核心维度
  • 2.Shell脚本修炼手册之---创建第一个 Shell 脚本
  • Windows 11 安装 Miniconda + Mamba,配置国内源
  • KV cache
  • java八股文-JVM相关面试题-参考回答
  • 计算机视觉 图片处理 在骨架化过程中,每次迭代都会从图像的边缘移除一层像素,直到只剩下单像素宽度的骨架
  • 机器学习--数据清洗—(续篇)
  • 【论文阅读】Multi-metrics adaptively identifies backdoors in Federated Learning
  • Python文件操作与异常处理详解 :基础方法、注意事项及os模块常用功能
  • day31 SQLITE
  • 百度Q2财报:总营收327亿 AI新业务收入首次超100亿
  • 前端-JavaScript笔记(核心语法)
  • Go语言数据类型全解析
  • 线程安全的产生以及解决方案
  • 记一次pnpm start启动异常
  • 学习设计模式《二十三》——桥接模式
  • 算法实战入门第二篇:链表结构与五大经典应用
  • 如何制作免费的比特币冷钱包
  • C++中的 Eigen库使用
  • 机器学习算法核心总结
  • AI全栈工程师:重塑软件开发全生命周期的未来革命
  • Nginx目录结构与配置文件全解析
  • 3-1〔OSCP ◈ 研记〕❘ WEB应用攻击▸理论概述 OWASP
  • 【LeetCode 热题 100】279. 完全平方数——(解法三)空间优化