Java语言基础5
面向对象(成员变量和局部变量)
成员变量和局部变量的区别:
1.在类中的位置不同
A:成员变量 类中方法外
B:局部变量 方法内或者方法声明上
2.在内存中的位置不同
A:成员变量 堆内存
B:局部变量 栈内存
3.生命周期不同
A:成员变量 随着对象的存在而存在,随着对象的消失而消失
B:局部变量 随着方法的调用而存在,随者方法的调用完毕而消失
4.初始化值不同
A:成员变量 有默认的初始化值
B:局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
面向对象(方法的形式参数是类名的时候如何调用)
形式参数的问题:
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
// An highlighted block
//形式参数是基本类型
class Demo{
public int sum(int a,int b){
return a+b;
}
}
//形式参数是引用类型
class Student{
public void show(){
System.out.println("我爱学习");
}
}
class StudentDemo{
//如果你看到了一个方法的形式参数是一个类类型(引用数据类型),其实需要的是该类的对象
public void method(Student s){
//调用的时候,把main方法中的s的地址传到了这里Student s = new Student()
s.show();
}
}
class ArgsTest{
public static void main(String[] args){
//形式参数是基本类型的调用
Demo d = new Demo();
int result = d.sum(10,20);
System.out.println(result:+result);
//形式参数是引用类型的调用
//需求:我要调用StudentDemo类中的method()方法
StudentDemo sd = new StudentDemo();
//创建学生对象
Student s = new Student();
sd.method();//把s的地址给到了这里
}
}
面向对象(匿名对象的概述和应用)
匿名对象
匿名对象:就是没有名字的对象
是对象的一种缉拿话表示形式
匿名对象的两种使用情况
对象调用方法仅仅一次的时候
作为实际参数传递
package mianxiangduixiang;
/*匿名对象:就是没有名字的对象
匿名对象的应用场景:
A:调用方法,仅仅只调用一次的时候
B:注意,多次调用不适合
好处:匿名对象调用完毕就是垃圾。可以被回收,提高资源利用率
C:匿名对象可以作为实际参数传递
*/
// An highlighted block
public class NoName {
public static void main(String[] args) {
//带名字的调用
Student s = new Student();
s.study();
System.out.println