一、面向对象概述
面向对象:一种编程范式,将程序设计看作是对象的集合,每个对象都有自己的状态和行为,并通过相互之间的消息传递来进行交互。
类(Class):类是对象的抽象,描述了一类具有相同属性和行为的对象。它定义了对象的结构和行为。
对象(Object):对象是类的实例化,是具体的实体,具有类定义的属性和行为。
属性(Attribute):属性是对象的状态,描述了对象的特征。
方法(Method):方法是对象的行为,描述了对象可以做什么。
二、类和对象
类声明:使用关键字class来声明一个类,后面跟类的名称。
属性(成员变量):类的属性是描述对象特征的变量,可以是基本数据类型或者其他类的对象。属性定义在类的内部,可以通过访问修饰符来控制访问权限。
方法:类的方法是描述对象行为的函数,定义了对象可以做什么。方法也定义在类的内部,可以通过访问修饰符来控制访问权限。
构造方法:构造方法是一种特殊的方法,用于创建对象时进行初始化操作。构造方法的名称与类的名称相同,没有返回类型,并且可以重载。
访问修饰符:用于控制类、属性和方法的访问权限,包括public、protected、private和默认(不声明访问修饰符)。
三、面向对象三大特性
封装(Encapsulation)
定义:将对象的属性和方法封装在一起,隐藏内部实现细节,只对外提供必要的接口。
目的:保护类的内部数据不被直接访问和修改,只能通过类提供的公开方法进行操作。
访问修饰符作用:
private:私有访问修饰符,只能在当前类中访问,外部类无法直接访问。
public:公共访问修饰符,可以在任何地方访问。
protected:受保护的访问修饰符,可以在当前类、同一包内的类和子类中访问。
默认(不声明访问修饰符):默认访问修饰符,只能在当前包内访问。
继承(Inheritance)
定义:允许创建一个新的类(子类),从已有的类(父类)派生出来。子类继承父类的属性和方法,并可以添加自己特有的属性和方法。
关键字:通过关键字extends实现继承。
注意事项:Java中一个类只能有一个父类,如果没指定父类,则Java内置的Object为父类。
多态(Polymorphism)
定义:同一个类的对象在不同的情况下表现出不同的行为。
实现方式:通过继承和方法重写实现多态。
四、其他关键概念
this关键字:用于指代当前对象,可以访问当前对象的属性和方法。
super关键字:用于指代父类的对象,可以访问父类的属性和方法(在子类的方法中)。
静态变量和静态方法:静态变量和静态方法属于类本身,而不是类的某个对象。它们通过类名直接访问,而不是通过对象引用访问。
对象数组:对象数组是一个存储对象引用的数组。数组中的每个元素都是对象的引用,而不是对象本身。
五、示例代码
以下是一个简单的Java类和对象的示例:
java
// 定义一个类Person
class Person {
// 属性
String name;
int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 方法
public void sayHello() {
System.out.println("Hello, my name is " + name + ", I'm " + age + " years old.");
}
}
// 创建对象并使用
public class Main {
public static void main(String[] args) {
// 创建Person对象
Person person = new Person("John", 25);
// 访问对象的属性
System.out.println(person.name); // 输出: John
System.out.println(person.age); // 输出: 25
// 调用对象的方法
person.sayHello(); // 输出: Hello, my name is John, I'm 25 years old.
}
}
在上面的示例中,定义了一个Person类,它有两个属性(name和age)和一个方法(sayHello)。然后在主函数中,创建了一个Person对象,并通过对象的引用变量来访问对象的属性和调用对象的方法。
以上内容涵盖了Java面向对象编程的基本概念、特性和示例代码,希望这份笔记对你学习Java面向对象有所帮助!