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()); } |
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(){
}
}