面向对象---------总(一)

1:局部变量和成员变量的区别?
类中位置, 局部变量:方法中,方法声明上

class HelloWorld
{
	String name;
	public void run(String name){
		int age =10;
	}
}

内存位置: 局部变量 栈内存 成员变量 堆内存
生命周期: 局部变量,随着方法的调用而进栈,随着方法的弹栈而消失
          成员变量 随着对象的创建而存在,随着对象的消失而消失
默认初始值:局部变量没有默认初始值
           成员变量有默认初始值
        引用数据类型:null
        基本数据类型: 整数型 int short byte long 0
                      小数类型 float double 0.0
                      布尔类型: false
                      字符型:char '\u0000'
2:匿名对象是什么?应用场景是什么?
没有名字的对象

Student s = new Student();
new Student();
匿名对象两种应用场景:
第一种:仅仅调用一次方法的时候可以使用
第二种:可以作为参数传递

class Test
{
	public static void main(String[] args){
		//第一种
		Student s = new Student();
		show(s);
		//第二种
		show(new Student());
	}

	//如果一个方法的形式参数是类名的时候,这里其实要的该类的对象
	public static void show(Student s){
		System.out.println("show方法");
	}

}

作为参数传递

add(new Student());
//这是一个类方法,这个类的书写格式是 : 修饰符 返回值类型 方法名(参数类型 参数名1 ,参数类型 参数名2) {}
public void add(Student s){  

}

3:封装是什么?java中封装的体现有哪些?请举例说明。
封装事物隐藏实现细节,对外提供公共访问方式
private 成员变量  //不能在外部类中 用对象名.成员变量来赋值  必须通过set/get方法来操作
对外提供 set/get方法

4:this关键字是什么?this关键字的应用场景?
指向当前对象,当前的引用

class Test
{
	public static void main(String[] args) {
		Student s = new Student();
		s.setName("张三");
		Student s2 = new Student();
		s2.setName("李四");
	}
}


class Student
{
	private String name;
	private int age;

	public void setName(String name) {
		//就近原则 作用之一:区分局部变量 和成员变量
		this.name = name;
	}
}

5:如何使用一个类的成员
如果一个类里面的成员变量没有使用private关键字,那么
使用对象名.成员变量名即可
如果一个类里面的成员方法没有使用private关键字,那么
使用对象名.成员方法名()调用即可

class Test
{
	public static void main(String[] args) {
		Student s = new Student();
		s.name = "张三";
		s.setName("张三");
		s.run();
		Student s2 = new Student();
		s2.setName("李四");
	}
}

class Student
{
	String name;
	private int age;

	public void setName(String name) {
		//就近原则 作用之一:区分局部变量 和成员变量
		this.name = name;
	}
	private void run(){
		
	}
}

猜你喜欢

转载自blog.csdn.net/mqingo/article/details/81907386
今日推荐