成员变量和局部变量的区别
A:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值
形式参数问题:
基本类型:形式参数改变不影响实际参数
引用类型:形式参数改变直接影响参数
如果看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象
例如:
class Student{
public void show(){
System.out.println("我爱学习");
}
}
class StudentDemo{
//如果看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象
public void method(Student s){//调用的时候,把main方法中的s的地址传递到了这里
s.show();
}
class ArgsTest{
//形式参数是基本类型的调用
Demo d=new Demo();
iint result=d.sum(10,20);
//形式参数是引用类型的调用
//需求:我要调用StudentDemo类中的method()方法
StudentDemo sd=new StudentDemo();
//创建学生对象
Student s=new Student();
sd.method(s);//把s地址给到了这里
匿名对象:
定义:没有名字的对象
调用方法:
new 类名().方法名();
好处:
A:匿名对象调用完毕就是垃圾。可以被垃圾回收器回收
B:匿名对象可以作为实际参数传递 对象.方法名(匿名对象);
匿名对象调用方法(匿名对象作为参数)
例子:new StudentDemo().method(new Student());
封装:
private:
是一个权限修饰符
被其修饰的成员变量和成员方法
被private修饰的成员只能在本类中访问
应用:
通过GetXxx()方法、SetXxx()方法进行访问
this关键字
当前类的对象引用