理解Java中的类与对象
发布时间: 2023-12-13 04:32:16 阅读量: 78 订阅数: 40
java的类与对象
# 1. Java中的类和对象基础
## 1.1 类和对象的概念
在Java中,类和对象是面向对象编程的基础概念。类是对一组具有相同属性和行为的对象进行抽象和定义,而对象则是类的一个实例化结果。类定义了对象共同的属性和方法,通过实例化对象,我们可以使用类所定义的属性和方法。
## 1.2 定义类和创建对象
在Java中,我们使用关键字`class`来定义类。类由类名、属性和方法组成。下面是一个简单的类的定义示例:
```java
public class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void displayInfo() {
System.out.println("Name: " + this.name);
System.out.println("Age: " + this.age);
}
}
```
通过使用关键字`new`我们可以创建一个类的实例,即对象。下面是创建`Person`对象的示例:
```java
Person person = new Person();
```
## 1.3 类的成员变量和方法
类中的属性通常被称为成员变量,用于描述对象的状态。属性可以是基本数据类型的变量,也可以是引用类型的对象。在类中定义的方法则用于操作和访问属性,以及完成其他的功能。
下面是一个包含成员变量和方法的类示例:
```java
public class Rectangle {
private int length;
private int width;
public void setLength(int length) {
this.length = length;
}
public void setWidth(int width) {
this.width = width;
}
public int getArea() {
return length * width;
}
}
```
在这个示例中,`Rectangle`类有两个成员变量`length`和`width`,分别表示矩形的长度和宽度。类中定义了两个方法`setLength`和`setWidth`用于设置矩形的长度和宽度;还有一个方法`getArea`用于计算矩形的面积。
通过调用类的方法,我们可以修改属性的值和获取属性的值:
```java
Rectangle rectangle = new Rectangle();
rectangle.setLength(5);
rectangle.setWidth(3);
System.out.println(rectangle.getArea()); // 输出结果为15
```
这样,我们就完成了对第一章的概述。在第二章中,我们将继续讨论类的特性和原则。
# 2. 类的特性和原则
### 2.1 封装
在Java中,封装是面向对象编程的核心概念之一。它指的是将数据和对数据的操作封装在一个类中,对外部只暴露必要的接口。
封装的优势有以下几点:
- 保护数据:封装可以隐藏实现细节,防止外部直接操作类的内部数据。
- 提供接口:通过定义类的公共方法,封装可以向外部提供访问和操作数据的接口。
- 简化代码:封装可以将复杂的逻辑封装在类的内部,让外部代码调用更简单。
下面是一个封装的示例代码:
```java
public class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
System.out.println("年龄不能为负数");
}
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
在上面的代码中,`name`和`age`变量被声明为私有(`private`),只能在类的内部访问。通过`setName`和`setAge`方法对外提供设置属性的方式,并在方法内部做了参数校验,确保年龄不能为负数。通过`getName`和`getAge`方法对外提供获取属性的方式。这样,外部代码就不能直接修改和访问`name`和`age`,只能通过公共方法来操作。
### 2.2 继承
继承是指一个类可以继承另一个类的属性和方法。在Java中,可以使用关键字`extends`来实现继承。
继承的优势有以下几点:
- 代码复用:子类可以继承父类的属性和方法,避免了重复编写相同的代码。
- 继承关系:继承可以建立类与类之间的关系,子类可以拥有父类的特性以及拓展自己的特性。
- 多态性:通过继承和方法重写,可以实现多态性,允许不同的子类对象对父类中的同一个方法有不同的实现。
下面是一个继承的示例代码:
```java
public class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + "正在吃东西");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void bark() {
System.out.println(name + "汪汪汪");
}
}
```
在上面的代码中,`Animal`是父类,`Dog`是子类。子类`Dog`继承了父类`Animal`的属性和方法,并可以新增自己的方法`bark`。子类构造方法`Dog`使用`super`关键字调用父类的构造方法,以初始化父类的属性。
### 2.3 多态
多态是指通过父类引用指向子类对象,根据具体的子类实现调用相应的方法。在Java中,多态可以通过继承和方法重写来实现。
多态的优势有以下几点:
- 简化代码:通过多态
0
0