1、概述
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。
- 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
2、第一个Java程序
public class HelloWorld {
/* 第一个Java程序
* 它将输出字符串 Hello World
*/
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
}
}
在这段代码中:
class就是类的关键字;
HelloWorld就是类名;
main就是方法名;
main后面的括号中的内容(String[] args)就是方法的参数;
大括号中的内容,就是方法体,也就是要做什么。
3、注释
Java 注释是一种在 Java 程序中用于提供代码功能说明的文本。
注释不会被编译器包含在最终的可执行程序中,因此不会影响程序的运行。
注释是良好的编程习惯,它们帮助程序员更容易地理解代码的用途和功能,并且在团队协作中非常有用。
Java 注释主要有三种类型:
- 单行注释
- 多行注释
- 文档注释
3.1、单行注释
单行注释以双斜杠 // 开始:
实例
// 这是一个单行注释 int x = 10; // 初始化一个变量x为10
3.2、多行注释
多行注释以 /*开始,以 */结束:
实例
/* 这是一个多行注释 可以用来注释多行代码 */ int y = 20; // 初始化一个变量y为20
3.3、文档注释
文档注释以 /** 开始,以 */ 结束,通常出现在类、方法、字段等的声明前面,用于生成代码文档,这种注释可以被工具提取并生成 API 文档,如 JavaDoc。
实例
/** * 这是一个文档注释示例 * 它通常包含有关类、方法或字段的详细信息 */ public class MyClass { // 类的成员和方法 }
文档注释的格式通常包含一些特定的标签,如 @param 用于描述方法参数,@return 用于描述返回值,@throws 用于描述可能抛出的异常等等,这些标签有助于生成清晰的API文档,以便其他开发者能够更好地理解和使用你的代码。
4、对象与类
4.1、对象
此处的对象不是女朋友,是一个事实存在的事物,有对应的属性和行为,比如一个人,人的属性有:姓名、性别、年龄等,行为有:吃、穿、住、行、等。
4.2、类
在Java中,类就是一个模板,它描述一类对象的行为和状态。比如男人,男人就是一类属性中的性别为男的人。
5、面向对象
5.1、概念
面向对象是一种程序设计思想,就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。
现在很多语言都是面向对象的,如Java、C++、C#、Python等。
5.2、面向对象的优缺点
优点: 1、提升程序的解耦合程度,进而增强程序的可扩展性
缺点: 1、设计复杂 2、容易过度设计
5.3三大主要特征(理解)
封装、继承、多态
5.3.1、封装
封装主要有两种含义:
1、把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单元(即对象)中;
2、另一层含义指“信息隐藏”,把不需要让外界知道的信息隐藏起来,有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知晓,或只允许使用对象的功能,而尽可能隐藏对象的功能实现细节。
封装的优点
- 良好的封装能够减少耦合,符合程序设计追求“高内聚,低耦合”。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息实现细节。
5.3.2、继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承的好处:
(1)提高类代码的复用性。
(2)提高了代码的维护性。
(3)使得类和类产生了关系,是多态的前提(它也是继承的一个弊端,类的耦合性提高了。
继承的特性
- 子类拥有父类非 private 的属性、方法。
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法,即重写父类方法。
- Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
- 继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
- 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
5.3.3、多态
所谓多态,就是指一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
最常见的多态就是将子类传入父类参数中,当运行时调用父类方法时,通过传入的子类决定具体的内部结构或行为。