美文网首页
Java 对象和类

Java 对象和类

作者: CoderGuogt | 来源:发表于2020-01-08 10:16 被阅读0次

Java 作为一种面向对象语言,支持以下基本概念:

  • 多态
  • 继承
  • 封装
  • 抽象
  • : 类是一个模板,它描述一个类对象的行为和状态
  • 对象 : 对象是类的一个实例,有状态和行为
  • 实例
  • 方法
  • 重载

Java 中的类

类可以看成是创建 Java 对象的模板.
eg· 创建一个 Dog 类, Dog 拥有 breed, age, color三种状态,并且还拥有 barking, hungry, sleeping三种行为.

public class Dog {
    // 狗的品种
    String breed;
    // 狗的年龄
    int age;
    // 狗的颜色
    String color;

    // 狗叫方法(行为)
    void barking() {
        System.out.println("狗开始叫了");
    }
    // 狗饿了方法
    void hungry() {
        System.out.println("狗饿了");
    }
    // 狗正在睡觉
    void sleeping() {
        System.out.println("狗子正在睡觉");
    }
}

一个类可以包含以下类型的变量:

  • 局部变量 : 在方法、构造方法或者语句块中定义的变量被称为局部变量,变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁
  • 成员变量 : 成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量 : 类变量也声明在类中,方法体之外,但必须声明为static类型

构造方法

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法,默认的构造方法是 类名(),这里是 Dog(). 当我们自定义了一个构造方法的时候,这时候Java编译器不再会为该类创建一个默认的构造方法

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

下面为 Dog 类创建构造方法

class Dog {
    // 狗的名字
    String name;
    // 狗的品种
    String breed;
    // 狗的年龄
    int age;
    // 狗的颜色
    String color;

    // 构造方法
    public Dog(String name, String breed, int age, String color) {
        this.name = name;
        this.breed = breed;
        this.age = age;
        this.color = color;
        System.out.println("狗的名字叫" + this.name + ",今年" + this.age + "岁了," + "品种是" + this.breed + ",是一条" + this.color + "的狗.");
    }
    public Dog(String breed) {
        this.breed = breed;
    }
    public Dog(String breed, int age) {
        this.breed = breed;
        this.age = age;
    }
    public Dog(String breed, int age, String color) {
        this.breed = breed;
        this.age = age;
        this.color = color;
    }

    // 狗叫方法(行为)
    public void barking() {
        System.out.println(this.name + "开始叫了");
    }
    // 狗饿了方法
    public void hungry() {
        System.out.println(this.name + "饿了");
    }
    // 狗正在睡觉
    public void sleeping() {
        System.out.println(this.name + "正在睡觉");
    }
}

以上代码,给Dog类创建了四个构造方法

public Dog(String name, String breed, int age, String color);
public Dog(String breed);
public Dog(String breed, int age);
public Dog(String breed, int age, String color);

由于这里并没有创建 Dog() 构造方法,所以在创建一个对象的时候,不能使用 Dog dog = new Dog() 方式去创建了.

创建对象

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

  • 声明 : 声明一个对象,包括对象名称和对象类型
  • 实例化 : 使用关键字new来创建一个对象
  • 初始化 : 使用new创建对象时,会调用构造方法初始化对象

eg·


public class Test {
    public static void main(String[] args) {
        Dog dog1 = new Dog("旺财", "中华田园犬", 2, "黑色");
        dog1.barking();
        dog1.sleeping();
        dog1.hungry();

        Dog dog2 = new Dog();
        dog2.name = "果子";
        dog2.age = 1;
        dog2.breed = "萨摩耶";
        dog2.color = "白色";
        dog2.sleeping();
        dog2.hungry();
        dog2.barking();
    }
}


class Dog {
    // 狗的名字
    String name;
    // 狗的品种
    String breed;
    // 狗的年龄
    int age;
    // 狗的颜色
    String color;

    // 构造方法
    public Dog() {}
    public Dog(String name, String breed, int age, String color) {
        this.name = name;
        this.breed = breed;
        this.age = age;
        this.color = color;
        System.out.println("狗的名字叫" + this.name + ",今年" + this.age + "岁了," + "品种是" + this.breed + ",是一条" + this.color + "的狗.");
    }
    public Dog(String breed) {
        this.breed = breed;
    }
    public Dog(String breed, int age) {
        this.breed = breed;
        this.age = age;
    }
    public Dog(String breed, int age, String color) {
        this.breed = breed;
        this.age = age;
        this.color = color;
    }

    // 狗叫方法(行为)
    public void barking() {
        System.out.println(this.name + "开始叫了");
    }
    // 狗饿了方法
    public void hungry() {
        System.out.println(this.name + "饿了");
    }
    // 狗正在睡觉
    public void sleeping() {
        System.out.println(this.name + "正在睡觉");
    }
}

编译以上代码,打印结果为:

编译结果

类创建的成员变量和方法,默认是public类型的,如果需要设置成公共的,可以省略public;如果需要设置成私有的,就需要使用private对成员变量和方法进行修饰

源文件声明规则

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则:

  • 一个源文件中只能有一个public
  • 一个源文件可以有多个非public
  • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java
  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面
  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明

相关文章

  • Java类和对象

    原文链接 Java类和对象 你将学到: 类和对象的概念是什么 Java中创建类和对象的方法 构造方法重载 类和对象...

  • Java面向对象概述和三大特性

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,...

  • 学习Java编程面向对象的五大基本原则

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,...

  • 对像和类

    Java 对象和类 多态 继承 封装抽象 Java对象和类 类对象实例方法消息解析代码: 11 运行结果: 小狗的...

  • Android_开发_Day8_类和对象

    Android_开发Day8类和对象 目的: 了解Java的类和对象,学会Java类和对象的新建与使用。 技术: ...

  • class文件和字节码解析

    讲解了Java类和对象在内存中的表示机制,Java对象是根据Java类创建的,表示一个Java类实例;Java类是...

  • Java基础 面向对象入门基础知识 个人学习总结

    类和对象基础知识 1.类和对象的定义 2.如何定义java中的类 3.java对象 1.创建对象:对类进行实例化 ...

  • Java对象和类

    Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 对象:对象是类的一个实例,有状态和行为。 类...

  • java 泛型方法的两种写法

    这种需要传入 类名.class(class对象)(java有两类对象,Class对象和实例对象。更多参考Java的...

  • 【Java】JAVA 对象和类

    Java作为一种面向对象语言。支持以下基本概念:多态 继承 封装 抽象 类 对象 实例 方法 重载 构造方法 每个...

网友评论

      本文标题:Java 对象和类

      本文链接:https://www.haomeiwen.com/subject/embjactx.html