Java入门—第五节(类与对象下)

类与对象

一、全局变量与局部变量

1、变量的分类

2、成员变量(全局变量)

    直接在类中声明的变量叫成员变量(又称全局变量)

    如果未对成员变量设置初始值,则系统会根据成员变量的类型自动分配初始值:int分配初始值0、boolean分配初始值false,而自定义类型则分配初始值null。

    成员变量定义后,其作用域是其所在的整个类。

    成员变量的定义没有先后顺序,但是最好将成员变量的定义集中在类的顶部。

3、局部变量

    方法中的参数、方法中定义的变量和代码块中定义的变量统称为局部变量。
    局部变量的作用域范围从定义的位置开始到其所在语句块结束。

    如果局部变量的名字与全局变量的名字相同,则全局变量被隐藏,即这个全局变量在同名局部变量所在方法内暂时失效。

    如果在局部变量的作用域范围内访问该成员变量,则必须使用关键字this来引用成员变量。

    局部变量在使用以前必须显式初始化或赋值,局部变量没有默认值。

    声明局部变量时,数据类型前除final外不允许有其他关键字,即其定义格式为: [final] 数据类型 变量名 = 初始值;

二、static关键字

    对于static关键字,最主要的是把握以下几点:

       总的要把握:用static修饰的成员变量、代码块、方法在类加载的时候执行,没有用static修饰的成员变量、代码块、方法在创建对象的时候执行。而类加载发生在前,此时还没有创建对象,所以静态无法直接调用非静态。例如:

    (1)、静态方法不能直接调用非静态方法,可以间接通过创建该方法(指非静态方法)所在类的对象来调用;非静态方法可以直接调用静态方法;
    (2)、静态代码块不能直接调用非静态方法;可以间接通过创建该方法(指非静态方法)所在类的对象来调用;静态代码块可以直接调用静态方法;

    (3)、静态方法或者静态代码块不能直接使用非静态成员变量,可以间接通过创建该成员变量的对象来调用;静态方法或者静态代码块只能直接使用静态变量;

三、构造方法

为什需要构造方法?

看如下代码:

public class Teacher {

int age; // 年龄
String name; // 姓名
String position; // 职位
String education; // 学历


public String introduction() {
return "大家好!我是" + name + ",我今年" + age + "岁,学历" + education + ",目前职位是" + position;
}

}

如果要在这个类中创建若干的对象,那么我们需要写N多行代码,为了提高效率,我们引用了构造方法这一名词。

什么是构造方法?

构造方法的实质就是用来创建对象的方法,每一个类中都会有默认的构造方法(一个空的构造方法)。构造方法有以下特点:

    (1)、构造方法负责初始化类中的实例变量。
    (2)、构造方法是一种特殊的方法,这种方法必须满足以下语法规则:构造方法必须与类名相同;不包含返回值类型描述部分。
    (3)、构造方法不能有static和final关键字修饰。

如何使用构造方法?

    使用new关键字调用构造方法,即构造方法在创建对象(也称对象实例化)时被调用。

public class  TeacherTest {

public static void main(String[ ] args) {
Teacher  teacher = new Teacher(); //创建Teacher对象
}
}
创建类时,如果没有显式定义构造方法,则该类会存在一个默认的无参构造方法;
可以在类中声明一个或多个有参构造方法,但每个构造方法在参数个数或参数数据类型上要有所差别



类中构造方法的相互调用

四、this关键字

this代表对当前对象的一个引用,this实质是一个带词,代指的就是它所属的对象。

this关键字用于调用属性、方法及本类中构造方法。下面是几个例子:






对象初始化过程

用new创建并初始化对象步骤:
给对象的实例变量(非“常量”)分配内存空间,默认初始化成员变量;
成员变量声明时的初始化;
初始化块初始化(又称为构造代码块或非静态代码块);
构造方法初始化

猜你喜欢

转载自blog.csdn.net/chenxiliylnf/article/details/80273725
今日推荐