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.pswp.cn/news/919473.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光学件加工厂倚光科技:陪跑光学未来力量

在光学创新的漫漫长路上,总有一些看似 “不划算” 的坚持,却在悄然改写行业的未来。倚光科技的故事,就始于这样一种选择 —— 明知光学打样利润微薄,明知上百个项目中能走到量产的寥寥无几,仍愿意投入全球顶尖的设备与…

RabbitMQ:生产者可靠性(生产者重连、生产者确认)

目录一、生产者重连二、生产者确认一、生产者重连 当网络不稳定的时候,利用重试机制可以有效提高消息发送的成功率。不过SpringAMQP提供的重试机制是阻塞式的重试,也就是说多次重试过程中,当前线程是被阻塞的,会影响业务性能。 …

【深度学习新浪潮】空天地数据融合技术在城市三维重建中的应用

空天地数据融合技术在城市三维重建中的应用已取得显著进展,尤其在提升精度以满足具身智能机器人仿真训练需求方面,研究和产品均呈现多样化发展。以下是关键研究进展、产品方案及精度要求的详细分析: 一、研究进展与技术路径 1. 多源数据融合的技术突破 时空基准统一:通过…

Selenium自动化测试入门:cookie处理

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快driver.get_cookies() # 获得cookie 信息driver.get_cookies(name) # 获得对应name的cookie信息add_cookie(cookie_dict) # 向cookie 添加会话信息delete_cookie(na…

快解析如何让远程访问更安全?

一、勒索病毒攻击服务器的途径很多用户服务器对外开放,实现外网访问,担心服务器被勒索病毒攻击!勒索病毒攻击服务器的途径之一是通过路由器开放的端口进行扫描攻击,所以尽量不要在服务器的路由器和防火墙中开放端口二、快解析如何…

Linux下编译ARPACK

本文记录Linux下编译ARPACK的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、依赖 1.1 安装oneAPI 参见:Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 二、编译ARPACK …

芋道RBAC实现介绍

说明:之前写过一篇博客,介绍如何搭建一个基于角色的权限验证框架 搭建一个基于角色的权限验证框架 本文介绍在非常受欢迎的开源框架——芋道中是如何实现 RBAC 的,芋道的部署参考下面这篇文章: 芋道微服务代码部署 介绍 一般…

Docker部署Jellyfin,没有公网IP如何使用内网穿透远程访问?

Jellyfin是一款完全开源、免费的媒体服务器,可帮助你快速搭建属于自己的私人流媒体平台:电影、剧集、音乐、照片统统收纳,跨设备随点随播。本文将以最简洁的步骤,演示如何在Docker容器中部署Jellyfin,并通过贝锐花生壳…

Podman:Mysql(使用卷)

下载镜像hpphcomp:~$ podman pull docker.1ms.run/mysql:latest Trying to pull docker.1ms.run/mysql:latest... Getting image source signatures Copying blob c81e70a25040 done | Copying blob 31f7d8dc4024 done | Copying blob b9916866e45f done | Copying blob …

2025年渗透测试面试题总结-21(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、文件上传绕过方式(Top 5) 二、文件包含高危函数(PHP为例&#xff0…

像海绵一样吸收技术书籍的高效学习方法

像海绵一样吸收技术书籍的高效学习方法前言六步高效阅读法步骤1:快速浏览章节步骤2:先读章末测验步骤3:只读粗体字步骤4:只读每段的首句和末句步骤5:通读整章步骤6:复习与重复高效学习技术书籍的实用技巧1.…

Day60--图论--94. 城市间货物运输 I(卡码网),95. 城市间货物运输 II(卡码网),96. 城市间货物运输 III(卡码网)

Day60–图论–94. 城市间货物运输 I(卡码网),95. 城市间货物运输 II(卡码网),96. 城市间货物运输 III(卡码网) 今天是Bellman_ford专场。带你从普通的Bellman_ford,到队列…

Jenkins服务器SSH公钥配置步骤

步骤1. 在Jenkins服务器上生成SSH密钥在Jenkins服务器上执行以下命令:# 1. 生成SSH密钥对 ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""# 2. 设置正确的权限 chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub# 3. 查看公钥内…

数据链路层-网络层-传输层

文章目录深入浅出理解网络核心:从交换机到TCP/UDP一、数据链路层:交换机的"地盘"1. 数据链路层的核心功能2. 以太网的发展历程3. 以太网中的MAC地址4. 以太网帧格式:数据的"快递包装"5. 交换机的工作原理:高效…

专题:2025跨境电商市场布局、供应链与产业带赋能报告 |附130+份报告PDF、原数据表汇总下载

原文链接:https://tecdat.cn/?p43616 2025年,跨境圈的老板们集体焦虑:美国关税飙到145%,亚马逊封号潮卷土重来,而东南亚却悄悄涨了246%!这不是危言耸听——66%的美国消费者说,海外货涨10%就换本…

LINUX 818 shell:random;for for

问题 [rootweb ~]# a$(echo $[$RANDOM%10]) 您在 /var/spool/mail/root 中有邮件 [rootweb ~]# echo $a 3 [rootweb ~]# echo 139$a$a$a$a$a$a$a$a 13933333333 您在 /var/spool/mail/root 中有邮件 [rootweb ~]# echo 139 $a 139 3 [rootweb ~]# echo $a 3 [rootweb ~]# echo …

JavaScript 原型机制详解:从概念到实战(附个人学习方法)

原型是 JavaScript 实现继承与代码复用的核心机制,也是面试高频考点。本文结合个人学习经验、核心概念解析与实战案例,帮你彻底搞懂原型、prototype、__proto__ 及相关知识点,同时分享高效的学习方法。 一、个人学习方法:高效掌握复杂知识点 复杂概念(如原型)的学习,关…

【人工智能】2025年AI代理失控危机:构建安全壁垒,守护智能未来

还在为高昂的AI开发成本发愁?这本书教你如何在个人电脑上引爆DeepSeek的澎湃算力! 在2025年,AI代理(AI Agents)已成为日常生活和企业运营的核心组成部分,它们能够自主决策、执行任务并与环境互动。然而,随着AI代理能力的指数级提升,其安全隐患也日益凸显,包括数据泄露…

从噪声到动作:Diffusion Policy 如何改变机器人学习?

从噪声到动作:Diffusion Policy 如何改变机器人学习? 引言 在机器人手臂操作方面一直存在诸多挑战。我们熟悉的工业场景中的组装机械臂,往往依赖于写死的程序指令进行控制,具有高度规范化与高精度的特点。而当机械臂需要在复杂、…

量子计算和超级计算机将彻底改变技术

我们生活在技术时代,但未来仍有无限可能。近年来,各大企业在量子计算领域持续迈出虽小却关键的步伐 —— 这一技术注定将彻底改变我们所熟知的世界。以下精选的潜在应用场景,将对从交通出行到医疗健康的多个领域产生深远影响。 在由 “1” 和…