对象和类

在面向对象编程中,将“具体”称为“对象”,将“抽象”称为“类”

类:由一组抽象的属性和方法构成

对象:由一组特定属性和方法构成

多个对象,可以抽象出来类

类可以产生多个对象

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

  • ⾯向过程 :面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的一次调用就可以。

  • ⾯向对象 :面向对象,把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事件在解决整个问题的过程所发生的行为。 目的是为了写出通用的代码,加强代码的重用,屏蔽差异性。

类和对象的组成部分:

静态:属性

动态:方法

类可以细分,但细分并不一定是对象

方法是多个对象共享的

属性是各个对象独有的

一般而言,对象是指堆中的东西

栈里面的对象名称之为引用

引用:相当于C语言的指针。持有对象的内存地址

属性:就是全局变量

全局变量:方法以外,类以内;有初始值

局部变量:方法内部; 没有初始值,在使用前必须赋初值

局部变量可以和全局变量重名,并且优先级高

new 实例化

对象使用前必须先实例化(new)

public class Car {
    // 类的属性
    String brand;
    int price;

    // 类的方法
    void start() {
        System.out.println("The car is starting.");
    }

    void stop() {
        System.out.println("The car is stopping.");
    }

    public static void main(String[] args) {
        // 实例化对象
        Car car1 = new Car();
        Car car2 = new Car();

        // 设置对象的属性
        car1.brand = "Toyota";
        car1.price = 20000;

        car2.brand = "Honda";
        car2.price = 25000;

        // 调用对象的方法
        car1.start();
        car2.stop();
    }
}

static静态方法调用

同一个类:

static方法不能调用非static方法

不同类:

调用另一个类的static方法可以类名.方法()

或者实例化一个对象 对象.方法()

static方法是类级别的,属于类

非static方法属于对象级别的,属于对象

对象.static方法() 对象.非static方法()

类.static方法()

类有的,对象自然有

对象有的,类不一定有

以下是一个详细的代码示例,展示了类和对象的使用,以及静态方法的调用。

public class Animal {
    // 类的属性
    String name;
    int age;

    // 类的方法
    void speak() {
        System.out.println(name + " says: Hello!");
    }

    // 静态方法
    static void info() {
        System.out.println("Animals are living beings that can move and respond to their environment.");
    }

    public static void main(String[] args) {
        // 实例化对象
        Animal dog = new Animal();
        Animal cat = new Animal();

        // 设置对象的属性
        dog.name = "Buddy";
        dog.age = 3;

        cat.name = "Whiskers";
        cat.age = 2;

        // 调用对象的方法
        dog.speak();
        cat.speak();

        // 调用静态方法
        Animal.info();
    }
}

代码解析

  1. 类的定义Animal类包含属性nameage,以及实例方法speak()和静态方法info()

  2. 实例化对象:在main方法中,创建了两个Animal对象,分别代表一只狗和一只猫。

  3. 设置属性:为每个对象设置了名称和年龄。

  4. 调用方法:通过对象调用实例方法speak(),输出每个动物的问候。

  5. 静态方法调用:通过类名调用静态方法info(),输出关于动物的基本信息。

传参

返回值:

有返回值

无返回值(返回值为void)

在调用有返回值的方法时,需要接收返回值

多个元素类型相同 ->数组

多个元素类型不同 ->类/对象

参数列表必须满足:类型,个数,顺序完全一致

public class Calculation {
    // 有返回值的方法
    int add(int a, int b) {
        return a + b;
    }

    // 无返回值的方法
    void display(String message) {
        System.out.println(message);
    }

    public static void main(String[] args) {
        Calculation calc = new Calculation();

        // 调用有返回值的方法
        int result = calc.add(5, 3);
        System.out.println("5 + 3 = " + result);

        // 调用无返回值的方法
        calc.display("Hello, world!");
    }
}