局部变量和成员变量
- 定义位置不同
局部变量:在方法的内部
成员变量:在方法的外部,直接写在类当中 - 作用范围不同
局部变量:只有方法当中才可以使用,出了方法就不能再用
成员变量:整个类全都可以通用 - 默认值不同
局部变量:没有默认值,如果想使用,必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样 - 内存的位置不同
局部变量:位于栈内存
成员变量:位于堆内存 - 生命周期不一样
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失
private关键字
只能在本类中访问用该关键字修饰的变量
方法的局部变量和类的成员变量重名时
根据就近原则,优先使用局部变量,如果需要访问本类当中的成员变量,需要使用格式this.成员变量名
public class test2 {
String name;
public void sayhello(String name){
System.out.println(name+"你好"+this.name);
}
}
构造方法
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值,构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void
注意事项
- 如果你不提供构造方法,系统会给出无参数构造方法。
- 如果你提供了构造方法,系统将不再提供无参数构造方法。
- 构造方法是可以重载的,既可以定义参数,也可以不定义参数。
标准代码——JavaBean
JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无 参数的构造方法,提供用来操作成员变量的 set 和 get 方法。
public class ClassName{
//成员变量
//构造方法
//无参构造方法【必须】
//有参构造方法【建议】
//成员方法
//getXxx()
//setXxx()
}
//示例代码
public class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
匿名对象
/*
创建对象的标准格式:
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
new 类名称();
注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
*/
public class Demo01Anonymous {
public static void main(String[] args) {
// 左边的one就是对象的名字
Person one = new Person();
one.name = "高圆圆";
one.showName(); // 我叫高圆圆
System.out.println("===============");
// 匿名对象
new Person().name = "赵又廷";
new Person().showName(); // 我叫:null
}
}