如何快速变得专业:掌握类的基本概念-类/方法/关键字/变量/数据类型/注释

在李笑来的《财富自由之路》中提到一种初学者快速入门的学习方法:快速掌握最小必要知识。

在这里插入图片描述
关于Java的类,最少必要知识就是本文提到的基本概念,掌握了这些基本概念,就对类有了基本的了解,为后续的深入学习和沟通奠定了基础,是构建专业知识体系的第一步。

本文将围绕“基本概念——类、方法、关键字、变量、数据类型、注释”,并通过一个完整的Java类示例,帮助读者扎实基础,快速迈向专业开发者的行列。

1. 类(Class)

概念解析:类是Java面向对象编程的基础单元,是一种自定义的数据类型,用于描述一类对象的共同属性和行为。每个Java应用程序至少包含一个类,它是创建对象的模板或蓝图。

示例代码

public class Animal {// 属性:共同特征String name;int age;// 方法:共同行为public void eat() {System.out.println("Animal is eating.");}public void sleep() {System.out.println("Animal is sleeping.");}
}

如图所示,把一个类进行解剖,其关键信息如下:
在这里插入图片描述

  • ①一个类本质是一个文本文件,打开这个文件,一个完整的类会包含②③④⑤⑥
  • ②包名,必不可少,每个类一定在一个特定的包下,包是对类分门别类管理的一种方式
  • ③类的定义,包括访问修饰符(public)、关键字(class)、类名,只有类名是咱们Java程序员自定义的,只要符合Java规范即可,另外两部分都是固定的,不能改变的。不过访问修饰符有三种选择:public、protected、private。类的代码主要包含在在类名后面的大括号(第3行和第28行)之间,
  • ④变量
  • ⑤方法
  • ⑥本质上也是方法,不过这是一个特殊的方法,每个Java应用都有一个入口,这个入口就是main方法。当然每个类都可以包含一个main方法,但Java应用在运行时,只有一个main方法是入口,这个main方法在启动时会被指定。

2. 关键字(Keyword)

概念解析:关键字是Java语言中具有特殊意义的保留单词,它们用于定义程序的结构、控制流程等,比如上面类定义中的publicclassvoid等,当然还有很多关键字,后续会陆续接触到。

3. 方法(Method)

概念解析:方法是类中定义的可执行代码块,用于执行特定任务。它封装了行为,使得代码更加模块化和易于维护。

一个方法由三部分组成:

  • ①方法声明,包含❶访问修饰符(public,也可能是private/protected),❷返回类型(void表示无返回,也可以是其他类型),❸方法名
  • ②一对大括号
  • ③方法体,必须包含在大括号内
    在这里插入图片描述

4. 变量(Variable)

概念解析:变量是程序中存储数据的容器,具有类型、名称和值。Java中的变量必须先声明后使用,并且遵循严格的类型检查规则。

变量定义包括三部分:

  • ①访问修饰符,可能是public/private/protected,没有其他选项
  • ②变量类型
  • ③变量名称
    在这里插入图片描述

5. 数据类型(Data Types)

概念解析:Java的数据类型分为两大类:基本数据类型(如int、double、char)和引用数据类型(如类、数组)。基本数据类型直接存储值,而引用类型存储的是对象的内存地址。

6. 注释(Comment)

概念解析:注释是程序员添加在代码中的非执行文本,用于解释代码的功能、目的或提供其他相关信息。Java支持单行注释(//)、多行注释(/* ... */)和文档注释(/** ... */)。

完整示例:动物王国的猫类

为了更好地理解上述概念,让我们通过一个简单的“猫”类(Cat)来综合应用这些知识。

/*** Cat 类,继承自 Animal 类,展示了 Java 基本概念的应用。*/
public class Cat extends Animal { // 使用 "extends" 关键字继承 Animal 类// 新增属性String breed; // 猫的品种// 构造方法:初始化属性public Cat(String name, int age, String breed) {super(name, age); // 使用 "super" 调用父类构造器this.breed = breed;}// 重写父类方法@Override // 使用 "@Override" 注解表明此方法覆盖了父类的方法public void eat() {System.out.println("Cat " + name + " is eating fish.");}// 新增方法public void meow() {System.out.println("Cat " + name + " says 'Meow~'");}// 主函数,用于测试 Cat 类public static void main(String[] args) {Cat myCat = new Cat("Mimi", 3, "Siamese"); // 创建 Cat 对象myCat.eat(); // 调用 eat 方法myCat.sleep(); // 通过继承调用父类方法myCat.meow(); // 调用新增的 meow 方法}
}

结语

通过上述“猫”类的示例,我们不仅复习了Java的基本概念,还见识了如何将这些概念应用于实际编程中。

掌握类与对象、方法的定义与调用、关键字的意义、变量的使用、数据类型的区分以及合理运用注释,是成为Java专业开发者不可或缺的基石。

实践是学习的最佳途径,建议读者动手尝试编写并运行代码,不断探索Java的奥秘,逐步提升自己的编程技能。

随着经验的积累和技术的深化,你将能够更自信地面对复杂的项目和挑战,真正步入专业开发者的行列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11118.shtml

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

相关文章

智慧油田三维电子沙盘系统

深圳易图讯科技(www.3dgis.top)智慧油田三维电子沙盘系统采用三维GIS、大数据、云计算、虚拟现实、物联网、AI等前沿技术,支持无人机航拍、高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换&#xf…

Python 生成器常用场景一 取代普通迭代器

在上一篇文章 https://blog.csdn.net/nvd11/article/details/138738472 已经简单介绍了生成器 是 一种特殊的迭代器 而的确, 大部分普通的迭代器是可以被生成器取代的, 以达到简化代码的目的。 使用迭代器的例子 我们找回之前介绍迭代器用到的link li…

C语言笔记12

1.使用qsort函数进行排序 #include <stdio.h> #include <stdlib.h> #include <string.h>//void qsort(void* base, //指向待排序数组的第一个元素的指针 // size_t num, //base指向数组中的元素个数 // size_t size,//base指向的数组中一…

【ESP32接入ATK-MO1218 GPS模块】

【ESP32接入ATK-MO1218 GPS模块】 1. 引言2. ATK-MO1218 GPS模块概述3. 接入ATK-MO1218 GPS模块的步骤4. 示例代码5. 结论1. 引言 在现代的嵌入式系统和物联网项目中,精确的位置信息是至关重要的。ATK-MO1218 GPS模块作为一款高性能的GPS/北斗双模定位模块,为开发者提供了强…

项目管理-计算题公式-补充【复习】

1.EMV决策树 定义&#xff1a;用决策树在若干备选行动方案中选择一个最佳方案。在决策树 中&#xff0c;用不同的分支代表不同的决策或事件&#xff0c;即项目的备选路径。每个决策或事件 都有相关的成本和单个项目风险(包括威胁和机会)。决策树分支的终点表示沿特 定路径发展的…

Xshell 7官网免费版下载与安装详细教程!学校/家庭使用免费哦~

一、 安装 1 卸载之前安装的xshell, 未安装忽略此步骤 2 解压本地文件&#xff0c;双击运行xshell**.exe, 按照提示安装 等候引导完成 3 点击下一步 4接受下一步 5 选择安装的路径 改成你自己的安装路径 6程序文件夹选择默认 7 取消勾选&#xff0c;激活之后操作 8 激活&…

Redis继续(黑马)

Redis持久化 RDB与AOF RDB记录是二进制数据&#xff0c;Redis停机时会触发保存&#xff0c;名称&#xff1a; dump.rdb 缺点&#xff1a;间歇式复制可能存在宕机数据更新丢失 AOF 记录的写操作命令&#xff0c;每秒记录一下&#xff0c;也存在数据更新丢失的可能&#xff0c;相…

视频剪辑批量转码技巧:如何将MP4视频快速转换为MP3音频的方法

在视频剪辑和音频处理的领域中&#xff0c;经常需要将视频文件转换为音频文件&#xff0c;特别是将MP4视频转换为MP3音频。这样的转换不仅可以减少文件大小&#xff0c;方便传输和存储&#xff0c;还可以在不损失音频质量的情况下&#xff0c;方便在各种设备上播放。下面&#…

Ubuntu18.04解决有线网卡连接问题(不更新内核成功版)

https://www.realtek.com/Download/List?cate_id584 &#xff08;需要翻一下&#xff09; 不想自己去下载&#xff0c;直接去我资源里下载我上传的包就好啦(&#x1f602;&#x1f602;&#x1f602;刚刚看了下别人下载要VIP还是自己去网站下很快的) 下载后解压&#xff0c;在…

基于Springboot的家教管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的家教管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

Nuxt.js实战:Vue.js的服务器端渲染框架

创建Nuxt.js项目 首先&#xff0c;确保你已经安装了Node.js和yarn或npm。然后&#xff0c;通过命令行创建一个新的Nuxt.js项目&#xff1a; yarn create nuxt-app my-nuxt-project cd my-nuxt-project在创建过程中&#xff0c;你可以选择是否需要UI框架、预处理器等选项&…

实验12:综合实验

1、实验目的及要求&#xff1a; 通过本次实验完成一个小型网络中配置设备。实现配置一个路由器、两个交换机和两台PC&#xff0c;以支持IPv4和IPv6连接&#xff1b;路由器和交换机必须安全管理&#xff0c;配置VLAN间路由、DHCP、以太网通道和端口安全。通过登录思科网络技术学…

Typescript高级: 深入理解 keyof, extends 以及 extends keyof

概述 在TypeScript的世界中&#xff0c;extends和keyof是两个强大的工具它们分别用于约束类型和获取对象类型的键当这两者结合使用时&#xff0c;我们可以创建出更为复杂和精细的类型操作从而增强TypeScript的类型安全性 keyof keyof 用于获取一个对象类型的所有键&#xff0…

设计模式 六大原则之开放封闭原则

文章目录 定义理解 小结 定义 开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的&#xff0c;但对于修改是封闭的。这意味着应该用抽象定义结构&#xff0c;用具体实现扩展细节&#xff0c;以此确保软件系统开发和维护过程的可靠性。 理解 怎么理解这个呢&#x…

我和爬虫的故事

文章目录 爬虫简介个人经历未来总结 爬虫简介 网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外…

Gone框架介绍16 - 自动生成Priest

我从头到尾实现了一个Golang的依赖注入框架&#xff0c;并且集成了gin、xorm、redis、cron、消息中间件等功能&#xff1b;自己觉得还挺好用的&#xff0c;并且打算长期维护&#xff01; github地址&#xff1a;https://github.com/gone-io/gone 文档原地址&#xff1a;https:/…

PHP笔记

1. 搭建运行环境 1.1 挂载光盘 [rootredhat200 ~]# mount /dev/sr0 /mnt 1.2 配置仓库 # 查看仓库列表 [rootredhat200 ~]# dnf repolist# 进入到仓库目录 [rootredhat200 ~]# cd /etc/yum.repos.d/ # 编辑仓库文件 [rootredhat200 yum.repos.d]# vim base.repo # 查看仓库…

08.4.grafana自定义图形并直接数据库取值

grafana自定义图形并直接数据库取值 自定义添加油表图形 选择gauge图形&#xff0c;并且配置对应设定值&#xff0c;点击应用 如图所示&#xff0c;可以看到仪表盘上的值是zabbix上取得值 配置grafana直接数据库取值 添加mysql数据源 添加后进行配置&#xff0c;我这…

JS解密之新js加密实战(二)

前言 上次发了一篇关于新加密的&#xff0c;只解了前边两层&#xff0c;这中间家里各种事情因素影响&#xff0c;没有继续进一步研究&#xff0c;今天百忙之中抽空发布第二篇&#xff0c;关于其中的一小段加密片段&#xff0c;我认为分割成多个小片段是更容易被理解的。逻辑相…

Python生成器使用场景2 - 处理无限队列 - 节省cpu 资源

什么是无限队列&#xff1f; 例如常见的斐波那契数列&#xff0c; 自然数队列等 这次我们用素数队列来举个例子 普通方法求素数 首先我用普通的方法编写1个 generate_prime_numbers(n) 的函数&#xff0c; return 1个包含前n个素数的list def generate_prime_numbers(num10)…