java:对象和类

对象的属性和方法

Java中将现实对象中的信息称为属性(也叫全局变量),将现实对象中的功能称为方法

类:Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类。
定义一个类的步骤:1、定义类名;2、定义类的属性;3、定义类的方法

类名的命名规则:
    1.符合标识符命名规范;
    2.类名必须使用英文字母,首字母应大写,如Hello、People等。
    3.当类名由多个”单词”组合而成时,每个单词的首字母都要大写。如 Time、Game、Dog、DateUtil等。

例子:
public class Student {
//定义属性
String id; //学号
String name; //学生姓名
String grade; //学生年级

    //定义读书方法
    public void readBook() {
        System.out.println(name + “正在读书……");
    }
    //定义写作业方法
    public void doHomework() {
        System.out.println(this.name + “正在写作业……");
    }
}

对象的创建和使用

通过new关键字创建对象。创建对象又称实例化对象。
Student student = new Student();

使用”.”运算符访问对象的属性和方法。
student.属性 = 值;
student.方法名();

类与对象

类是创建对象的模板,确定对象将会拥有的属性和方法。
类是对象的抽象化;对象是类的具体化。
类是一种数据类型,是对象的数据类型(不同于int等基本类型:类具有方法)

面向对象编程语言以对象为中心,以消息为驱动

方法用于定义类的某种行为(或功能),其语法结构如下:

    访问控制符 [修饰符] 返回值类型 方法名( [参数] )  {
               //方法体
    }

例子:

public void sayHello(){
        System.out.println("Hello");
    }   
protected final void show(int x){
        System.out.println(x);
}

private static int add(int x, int y){
    return x+y;
}

访问控制符

方法中的访问控制符用于限制方法在其他类中的使用范围。
访问控制符分为四种:public、protected、友好的和private

修饰符

static修饰符用于限制方法的调用方式
1、static修饰的方法可以直接使用类名调用也可以使用类创建的对象调用
2、非static修饰的方法只能使用类创建的对象调用

返回值类型

1.如果方法没有返回值,需要用void表示
2.方法返回基本数据类型的数据,则返回值类型必须是返回数据所属的数据类型或者精度更高的数据类型(针对于数值类型的数据)。

动态参数

public class Test {

    public static void print(int... numbers) {
        for (int number : numbers) {
            System.out.println(number);
        }
    }   
    public static void main(String[] args) {
        print(1, 2, 3, 4, 5);

注意:
1、动态参数实质为数组;
2、动态参数必须位于参数列表的最后;
3、一个方法只能有一个动态参数;

代码块
Java中代码块分为静态代码块和非静态代码块
静态代码块只在类加载时执行一次;

public class Test {

static{
    System.out.println("静态代码块");
}
public static void main(String[] args) {        
}

}

非静态代码块每次创建对象时都会执行;

public class Test {

{
    System.out.println("非静态代码块");
}
public static void main(String[] args) {
    new Test();
    new Test();
}

}

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

1.如果未对成员变量设置初始值,则系统会根据成员变量的类型自动分配初始值:int分配初始值0、boolean分配初始值false,而自定义类型则分配初始值null。
2.成员变量定义后,其作用域是其所在的整个类
3.成员变量的定义没有先后顺序,但是最好将成员变量的定义集中在类的顶部。

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

1.如果局部变量的名字与全局变量的名字相同,则在局部变量的作用范围内全局变量被隐藏,即这个全局变量在同名局部变量所在方法内暂时失效。
2.如果在局部变量的作用域范围内访问该成员变量,则必须使用关键字this来引用成员变量
3.局部变量在使用以前必须显式初始化或赋值,局部变量没有默认值
4.声明局部变量时,数据类型前除final外不允许有其他关键字,即其定义格式为: [final] 数据类型 变量名 = 初始值

关键字static:
方法:

static修饰的方法称为类方法(又称静态方法):此种方法被所有该类的对象共享; JVM加载类时为其分配入口地址;可以由所在类创建的对象或类名来调用,推荐使用类名直接调用;
没有static修饰的方法称为实例方法(又称非静态方法):此种方法对所有该类的对象都是独立的; JVM执行创建对象代码时为其分配入口地址并且只分配一次;只能使用对象来调用;

代码块

static修饰的代码块称为静态代码块:JVM加载类时该类型代码块执行并且只执行一次;
没有static修饰的代码块称为非静态代码块:JVM执行创建对象代码时执行并且每创建一个对象执行一次;

注意

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

构造方法

构造方法之间可以通过this实现调用,但必须将调用构造函数代码写在有效代码的第一行

this关键字

猜你喜欢

转载自blog.csdn.net/kjw888/article/details/81880472