Java中几个定义的区别

来源:互联网 发布:淘宝营类目怎么修改 编辑:程序博客网 时间:2024/06/06 15:46

1.成员变量与局部变量的区别

(1)作用域不同:成员变量在整个类内部所有方法可用,也可以被与当前类有关的类的方法调用;局部变量仅限于定义它的方法应用

(2)初始值不同:成员变量Java会为其赋初值=0,局部变量不会赋初值。不同方法中可以有相同局部变量,同一方法中不可以重名。若成员变量和局部变量重名,局部变量优先调用。

2.构造方法

(1)new+构造方法,创建一个对象。构造方法是Java中用来初始化对象的方法,其与类同名且没有返回值。

若没有定义构造方法,系统自动生成一个无参构造方法。

可通过无参和有参的构造方法两种方法创建对象,通过有参构造方法创建的对象可以给对象中的实例变量赋初值。若只定义了一个有参构造方法,则不可以利用无参的构造方法来创建对象。其应用与参数列表作用有相似之处,即可以对传入的参数有一个范围的限定作用。即若输入参数不符合实际情况,则可以提示信息错误,并对其附上一个初值。避免了有参构造函数时传值不安全的问题。

3.(1)静态变量

Java中被static修饰的成员被称为静态成员或类成员,它属于整个类所有,即可被类中的所有对象共享。静态成员可以使用类名直接访问,也可用对象名访问。static也可以修饰变量、方法和代码块。如下:

public class StaticDemo {
//stastic修饰的变量为静态变量,所有类的对象共享hobby
static String hobby = "reading";
public static void main(String[] args) {
//静态变量可以直接使用类名来访问,无需创建类的对象
System.out.println("通过类名来访问hobby:" + StaticDemo.hobby);
//创建类的对象
StaticDemo demo = new StaticDemo();
//使用对象名来访问静态变量
System.out.println("通过对象名来访问hobby:" + demo.hobby);
//使用对象名的方式来修改静态变量的值
demo.hobby="青铜时代";
//再次使用类名来访问静态变量,值已被修改
System.out.println("通过类名来访问hobby:" + StaticDemo.hobby);

}
}

输出结果:

通过类名来访问hobby:reading
通过对象名来访问hobby:reading
通过类名来访问hobby:青铜时代

(2)静态方法

被static修饰的方法被称为静态方法或类方法

注意:

1.静态方法中可以直接调用同类中静态成员,不能调用非静态成员。若希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问静态变量。

2.在普通成员方法中,可以直接访问同类的非静态变量和静态变量。

3.静态方法中不可以直接调用非静态方法,需要对象来访问非静态方法。

(3)静态初始化块

被static修饰的初始化块被称为静态初始化块

注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。


0 0