50 lines
1.9 KiB
Markdown
50 lines
1.9 KiB
Markdown
|
---
|
|||
|
title: Defining Attributes
|
|||
|
localeTitle: 定义属性
|
|||
|
---
|
|||
|
## 定义属性
|
|||
|
|
|||
|
类具有属性和方法。属性基本上是类中的变量。
|
|||
|
|
|||
|
**_例:_**
|
|||
|
|
|||
|
```java
|
|||
|
public class Vehicle {
|
|||
|
int maxSpeed;
|
|||
|
int wheels;
|
|||
|
String color;
|
|||
|
|
|||
|
void horn() {
|
|||
|
System.out.println("Beep beep!");
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
`maxSpeed` , `wheels`和`color`都是Vehicle类的属性,而`horn()`是唯一的方法。
|
|||
|
|
|||
|
### 创建对象
|
|||
|
|
|||
|
我们可以创建Vehicle类的多个对象,并使用点语法来访问它们的属性和方法。
|
|||
|
|
|||
|
```java
|
|||
|
class MyClass {
|
|||
|
public static void main(String[] args) {
|
|||
|
Vehicle v1 = new Vehicle();
|
|||
|
Vehicle v2 = new Vehicle();
|
|||
|
v1.color = "red";
|
|||
|
v2.horn();
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 可见性修饰符
|
|||
|
|
|||
|
在上面的Vehicle示例中,声明属性时没有可见性修饰符(例如public,private或protected)。如果属性延迟中不包含修饰符,则默认为“package private”,这意味着可以使用“。”直接访问该属性。由同一包中的任何其他类的点表示法。
|
|||
|
|
|||
|
'public'变量可以从任何类访问 “protected”变量可以由同一个包中的任何类访问,也可以由具有父子关系的任何其他包中的子类访问 'private'变量只能在声明它们的类中访问 'package private'成员可以通过同一个包中的类访问
|
|||
|
|
|||
|
'public',变量,方法,构造函数和类(只有一个)可以声明为public。 'protected',变量,方法和构造函数可以声明为private,但不能声明为类和接口。 'private',变量,方法和构造函数可以声明为private,但不能声明为类和接口。 'default',变量,方法,构造函数和类可以是默认类型(通过不写任何东西来声明)。
|
|||
|
|
|||
|
#### public> protected> default> private(基于易于访问性)
|
|||
|
|
|||
|
将类的所有属性设为私有通常是一个好主意,并通过使用“getter”和“setter”方法来控制对它们的访问。
|