5-JavaSE之面向对象编程-类与对象(上)1

preview
需积分: 0 0 下载量 113 浏览量 更新于2022-08-03 收藏 1.9MB PDF 举报
面向对象编程是Java的核心特性,它使得代码更加结构化、可维护性更强。在这个主题中,我们将探讨类与对象的概念,以及与它们相关的其他关键概念。 1. **类与对象**: 类是面向对象编程的基础,它是描述一组具有相同属性和行为的对象的模板或蓝图。在Java中,类定义了数据成员(属性或变量)和成员方法(函数)。通过类,我们可以创建具有特定特性的实例,这些实例被称为对象。例如,我们创建一个名为`Person`的类,它有`name`和`age`属性,以及`getPersonInfo`方法用于获取个人信息。 ```java class Person { public String name; public int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getPersonInfo() { return "姓名:" + this.name + ", 年龄:" + this.age; } } ``` 通过`new`关键字,我们可以创建`Person`类的实例: ```java Person p1 = new Person(); // 创建一个空的Person对象 Person p2 = new Person("Steven", 25); // 创建一个带有名字和年龄的Person对象 ``` 2. **构造器**: 构造器是一种特殊的方法,用于初始化新创建的对象。在Java中,构造器与类名相同,没有返回类型。`Person`类中的构造器接收`name`和`age`参数,并将它们赋值给相应的实例变量。 3. **访问修饰符**: Java提供了访问修饰符来控制类成员的可见性。`private`关键字限制了成员只能在同一个类内部访问,而没有修饰符(默认为包私有)的成员在同一个包内的类中可以访问。`public`修饰的成员对所有类都是可见的。 4. **this关键字**: `this`关键字在类的实例方法中代表当前对象。在`Person`类的构造器中,`this.name = name`表示将构造器的参数`name`赋值给当前`Person`对象的`name`属性。 5. **static关键字**: `static`关键字用于声明静态成员,它们属于类而不是类的实例。这意味着所有类的实例都可以共享静态成员,无需创建对象。例如,我们可以有一个静态方法`sayHello()`,所有`Person`对象都可以调用它,而无需创建`Person`实例。 ```java class Person { // ... public static void sayHello() { System.out.println("你好,我是Person类"); } } ``` 调用静态方法:`Person.sayHello();` 6. **对象的创建与初始化**: 在Java中,对象的创建是通过`new`关键字完成的,这会分配内存空间并调用相应的构造器进行初始化。例如,`Person per = new Person("小明", 18);`创建了一个新的`Person`对象,并将其引用赋值给变量`per`。 7. **成员变量与局部变量**: 成员变量是类的一部分,它们在整个对象的生命周期内存在。局部变量只在方法、构造器或块的范围内有效。 8. **异常处理**: 当尝试访问`null`引用的成员时,会抛出`NullPointerException`。例如,如果我们忘记创建`Person`对象并尝试访问其属性或方法,就会出现这种异常: ```java Person per = null; System.out.println(per.name); // 抛出NullPointerException ``` 9. **主方法**: `main`方法是Java程序的入口点,JVM从这里开始执行。`public static void main(String[] args)`是每个Java应用程序都必须包含的主方法。在这里,我们通常会创建对象、调用方法等。 总结,面向对象编程的类和对象是Java编程的基础,理解这些概念对于编写高效、易于维护的Java代码至关重要。通过类,我们可以封装数据和行为;通过对象,我们可以实例化这些类并操作其中的数据。在实践中,还需要掌握继承、多态和接口等更高级的面向对象概念。