类
今日份学习:局部变量及其有效范围,this关键字和类的构造方法。
- 局部变量
定义:如果在成员方法内定义一个变量,那么这个变量被称为局部变量。
局部变量是在方法被执行是创建,在方法被执行结束时被销毁。局部变量在使用时必须进行赋值操作或者初始化,否则会出现编译错误。
- 局部变量的有效范围
可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
在相互不嵌套的作用域中可以同时声明两个类型和名称相同的局部变量。但是在互相嵌套的区域中不可以这样声明,编译器将会报错。
(在作用范围外使用局部变量是一个常见的错误,因为在作用范围外没有声明局部变量的代码)
- this关键字(在变量与参数重名时使用)
this关键字用于表示本类当前的对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类。this关键字只能在本类中使用。
this引用的就是本类的一个对象,在局部变量或方法参数覆盖了成员变量时,就要添加this关键字明确引用的是类成员还是局部变量或方法参数。
this除了可以调用成员变量或成员方法,还可以作为方法的返回值。
- 类的构造方法
每当类实例化一个对象时,类都会自动调用构造方法。
构造方法的特点:
- 构造方法没有返回值。
- 构造方法的名称要与本类的名称相同。
(在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用public void methodEx()这种形式进行定义,但构造方法并不需要使用void关键字进行修饰。)
构造方法的语法格式如下:
public Book(){
… //构造方法体
}
其中,public是构造方法修饰符,Book是构造方法的名称。
在构造方法中可以为成员变量赋值,这样当实体化一个本类对象时,相应的成员变量也将被初始化。如果类中没有明确定义的构造方法,编译器会自动创建一个不带参数的默认构造方法。
(如果在类中定义的构造方法都不是无参的构造方法,那么编译器也不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器就会报错。所以,只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。)
【例】买可乐,商家默认不加冰块,但可以要求加3个冰块。(构造方法和this关键字的用法)
public class Cola {
int ice;
public Cola(int ice) {
this.ice=ice;
}
public Cola() {
this(0);
}
public static void main(String[] args) {
Cola ice1 =new Cola();
System.out.println("一杯可乐商家默认的冰块有"+ice1.ice+"块。");
Cola ice2 =new Cola(3);
System.out.println("一杯可乐在要求加冰块后有"+ice2.ice+"块冰块。");
}
}
运行结果如下:
标签:变量,构造方法,对象,局部变量,ice,public,Cola From: https://blog.51cto.com/u_15966010/7557433