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”方法来控制对它们的访问。 |