12.Java 对象和类的关系/属性/成员变量/方法/UML图


面向过程和面向对象的区别

简述

  1. 面向过程思想适合简单、不需要协作的事务。比如单纯驾驶汽车,不需要跟别人协作。
  2. 面向对象思想适合比较复杂的事务,无法列出1234步骤。比如如何造车?造车太复杂,需要很多协作才能完成。

总结

  1. 面向对象和面向过程都是解决问题的思维方式,都是代码组织的方式。
  2. 解决简单问题可以使用面向过程。
  3. 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程

对象和类的概念

简述

  1. 对象有不同操作的方法、属性、变量等
  2. 类可以看做是一个模板或者图纸,系统根据类的定义来造出对象。
  3. 类:称之为 class 。对象:称之为 Object,instance(实例)。
  4. 某个类的对象等同于某个类的实例。同等含义。

类的定义

  1. 每个源文件必须有且只有一个 public class,并且类名和文件名保持一致。
  2. 一个 Java 文件可以同时定义多个 class
  3. 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。

代码示例:类的定义方式

// 下方定义的这些类都是空类,没有任何实际意义。还需要去定义类的具体信息。
// 每个源文件必须有且只有一个 public class,并且类名和文件名保持一致。
public class SxtStu {
}
// 一个 Java 文件可以同时定义多个 class
class Tyre{
}
class Emage{
}
class Try{
}

代码示例:简单的学生类编写

// 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
public class SxtStu {
    // 属性(成员变量)
    int id;
    String sname;
    int age;
    // 方法
    void study(){
        System.out.println("我正在摸鱼学习!");
    }
    // 构造方法
    SxtStu(){
    }
}

属性(field(成员变量))

简述

  1. 属性用于定义该类或该类对象包含的数据或者说静态特征。
  2. 属性作用范围是整个类体。
  3. 在定义成员变量时可以对其进行初始化,如果不进行初始化,Java 使用默认的值对其进行初始化。

属性定义格式

[修饰符]  属性类型  属性名 = [默认值];

成员变量默认值

方法

简述

  1. 方法用于定义该类或该类实例的行为特征和功能实现。比如一个学生类,他可以有学习或者玩游戏的行为特征或者说功能实现
  2. 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。
  3. 面向过程中,函数是最基本单位,程序是由一个个函数调用组成。
  4. 面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

方法定义格式

[修饰符]  方法返回类型  方法名(形参列表){
    // n 条语句
}

代码示例:

public class SxtStu {
    // 方法
    void study(){
        System.out.println("我正在摸鱼学习!");
    }
    void play(){
        System.out.println("我在玩游戏!LOL手游!");
    }
    // 构造方法
    SxtStu(){
    }
}

代码示例:完整的对象与类方法的调用

  1. 程序必须要有 main 方法,作为程序执行的入口
  2. 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
  3. 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
public class SxtStu {
    // 属性(成员变量)
    int id;
    String sname;
    int age;
    // 方法
    void study(){
        System.out.println("我正在摸鱼学习!");
    }
    void play(){
        System.out.println("我在玩游戏!LOL手游!");
    }
    // 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
    SxtStu(){
    }
    public static void main(String[] args) {
        // 定义创建一个类的对象
        SxtStu stu = new SxtStu();
        // 对象调用 play() 方法
        stu.play();
        // 对象调用 study() 方法
        stu.study();
    }
}

代码示例:模拟学生使用电脑学习

  1. 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
  2. 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
// 模拟学生使用电脑学习
class Computer {
    String brand;  // 电脑品牌
}

public class SxtStu1 {
    // 定义属性(成员变量)
    int year;
    String sname;
    int age;
    // 在 SxtStu1 类中定义一个 Computer 类的对象
    Computer comp;

    // 定义方法
    void study() {
        System.out.printf("我正在使用%s这个品牌的电脑摸鱼学习!%n",comp.brand);
    }
    // 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
    SxtStu1(){
    }

    public static void main(String[] args) {
        // 定义 SxtStu1 类的对象
        SxtStu1 stu1 = new SxtStu1();
        // stu1 对象调用 SxtStu1 类的属性(成员变量)并赋值
        stu1.year = 2021;
        stu1.sname = "阿jun";
        stu1.age = 0;
        // 定义 Computer 类的对象
        Computer comp1 = new Computer();
        // comp1 对象调用 Computer 类的属性(成员变量)并赋值
        comp1.brand = "神舟战神";
        // stu1 对象调用 comp 类属性(成员变量)并赋值为 comp1 的值
        stu1.comp = comp1;
        // 对象调用方法
        stu1.study();
    }
}

执行结果:

UML图示例


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM