面向对象(二)
成员变量和局部变量的区别
概念;
-
局部变量:定义在方法中的变量或者方法声明上的变量(方法声明上的也就是形参)
- 局部变量属于方法,随着方法的调用而存在。方法的消失而消失。
- 局部变量没有初始化不能使用,必须赋值才能使用。
- 存在栈内存
-
成员变量:类中方法外的变量
- 成员变量属于对象。随着对象的创建而创建,随着对象的消失而消失。
- 默认有初始化值。
- 存在堆内存(new出来的)
-
变量访问规则:当成员变量和局部变量同名后,在访问变量时按照就近原则访问。
-
先在局部范围找,找到就使用,局部范围没找到,就去成员范围(类中的范围)找,找到就是用,没有就报错。
示例
-
-
可以在一个Java文件中并列定义多个类,只能给有主方法的类前面加上public。(或者全部都不加修饰符public)其他加上就报错。
示例:
public class Test { public static void main(String[] args) { } } class Students{ } class fruit{ }
注意:建议一个Java文件就一个类
匿名对象:
-
概念:通俗讲就是没有名字的对象。也就是在创建对象时没有设置名,。
- 特点:我们这个方法只使用一次的时候,可以直接使用匿名对象调用方法。
- 使用***同一个对象把方法调用多次***,就不能匿名对象调用(每次调用会创建新对象)
- 匿名对象可以作为参数传递
-
看到一个方法的形参是一个 “类” 类型(引用类型),就传递一个该类的对象。
public class Test { public static void main(String[] args) { fruit fr = new fruit(); fr.test(fr,20); } } class fruit{ private double price; protected void test(fruit fruit,double a){ fruit.price=a; System.out.println("水果的价格"+fruit.price); } }
测试类中:在