1、类中属性的使用
属性(成员变量) VS 局部变量
相同点
- 定义变量的格式一样:数据类型 变量名 = 变量值
- 先声明,后定义
- 变量都有其相对应的作用域
不同点
1.1 在类中声明的位置不同
- 属性:直接定义在{ }中
- 局部变量:声明在方法内、方法形参内、代码块内、构造器形参、构造器内部的变量
1.2 关于权限修饰符的不同
- 属性:可以在声明属性时,指明其权限,使用权限修饰符。常用修饰符:private、public、缺省、protected,默认为缺省
- 局部变量:不可以使用权限修饰符
1.3 默认初始化值
属性:类的属性,根据其类型,都有默认初始化值
- 整型(byte、short、int、long):0
- 浮点型(float、double):0.0
- 布尔型(boolean):false
- 引用数据类型(字符串、类、数组、接口):null
局部变量:没有初始化值
- 意味着,在调用局部变量之前,一定要显示赋值
class User{
// 属性或成员变量
String name;
int age;
boolean isMale = true;
public void eat(){
// 局部变量
String food = "汉堡";
System.out.println("我最喜欢吃的是"+food);
}
public void talk(String language){ // 形参
System.out.println("我使用的语言是"+language);
}
}
2、类中方法声明和使用
2.1 方法声明
权限修饰符 返回值类型 方法名(形参列表){
方法体
}
class User{
// 属性或成员变量
String name;
int age;
boolean isMale = true;
public void eat(){
// 局部变量
String food = "汉堡";
System.out.println("我最喜欢吃的是"+food);
}
public void talk(String language){ // 形参
System.out.println("我使用的语言是"+language);
}
public String getName(){
return this.name;
}
public int changeAge(int age){
this.age = age;
return this.age;
}
}
说明
1、权限修饰符
- private、public、缺省、protected
2、返回值类型:有返回值 VS 无返回值
- 如果方法有返回值,则必须在声明方法时指定返回值类型
- 如果方法没有返回值,则使用viod来表示
2.2 形参列表:可以声明0个、1个或多个形参
3、对象数组的内存解析
- 引用类型的变量,只可能存储两种值:null或地址值
4、匿名对象
- 理解:我们创建的对象,没有显示的赋值给一个变量名,即为匿名对象
- 特征:匿名对象只能调用一次
public class HelloWorld {
public static void main(String[] args) {
Teacher t1 = new Teacher();
// 匿名对象的使用
t1.sayStudent(new Student());
}
}
class Teacher{
public void sayStudent(Student student){
student.sayName();
}
}
class Student {
String name;
int age;
public void sayName(){
System.out.println(name);
}
}