Java语言基础(二)

类和对象

Java是一种面向对象的编程语言,通过定义自己的类和对象,可以方便地对程序进行模块化和封装。类是定义对象的模板,而对象则是类的实例化结果。每个对象都有自己的属性和方法。本文将介绍Java中类和对象的概念和使用方法,并且提供实例代码进行演示。
在Java中,类是一组相似或相关的对象的集合。它定义了对象所具有的属性和方法。对象是类的实例化结果,它们具有与类相同的属性和方法,但是属性值可以不同。下面是一个类和对象的示例代码:

public class ClassObjectDemo {
    public static void main(String[] args) {
        Person person1 = new Person("张三", 20);
        System.out.println(person1.getName() + "今年" + person1.getAge() + "岁");

        Person person2 = new Person("李四", 25);
        System.out.println(person2.getName() + "今年" + person2.getAge() + "岁");
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

在上述代码中,Person是一个类,它有两个私有属性name和age,以及一个构造方法和两个访问方法getName和getAge。Person类的对象person1和person2分别通过使用构造方法创建。通过调用getName和getAge方法,可以获取Person对象的属性值。

类的定义

在Java中,可以通过定义关键字class、类名、实现的接口和类体的方式来定义一个类。类名的首字母要大写,采用驼峰命名法。

类可以包含以下成分:属性、方法、构造方法、代码块、内部类和内部接口。其中属性是指用于描述对象的特征,方法是指在对象上执行的操作,构造方法是用于初始化类的对象,代码块是用于初始化类的静态变量或静态常量,内部类和内部接口是用于实现类的封装和继承。

下面是一个类的示例代码:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

在上述代码中,Person类定义了两个私有属性name和age,以及一个构造方法和两个访问方法getName和getAge。

对象的定义

在Java中,要定义一个对象,需要使用类定义创建一个实例,并且为对象分配内存。对象可以调用类中定义的方法和属性,也可以重载或覆盖类中的方法。下面是一个对象的示例代码:

Person person = new Person("张三", 20);

在上述代码中,通过使用new关键字创建了一个Person对象,该对象的属性值name为"张三",age为20。

继承和多态

Java中的继承和多态是面向对象编程中的重要概念,它们的运用可以提高代码的重用性、可读性和可扩展性。本文将介绍Java中的继承和多态的概念和使用方法,并提供实例代码进行演示。

继承

继承是指一个类可以继承另一个类的属性和方法。被继承的类称为父类或超类,继承的类称为子类或派生类。子类可以重载或覆盖父类的方法,也可以添加新的方法,从而增强类的功能。

多态

多态是指同一个方法具有不同的实现方式。它可以提高程序的灵活性和扩展性。在Java中,多态可以通过父类变量引用子类对象来实现,也可以通过接口和抽象类来实现。

实例演示

下面是一个由父类Animal派生出两个子类Cat和Dog的例子:

public class InheritancePolymorphismDemo {
    public static void main(String[] args) {
        Animal animal1 = new Cat();
        animal1.eat();

        Animal animal2 = new Dog();
        animal2.eat();
    }
}

class Animal {
    public void eat() {
        System.out.println("动物正在进食...");
    }
}

class Cat extends Animal {
    public void eat() {
        System.out.println("猫正在吃鱼...");
    }
}

class Dog extends Animal {
    public void eat() {
        System.out.println("狗正在吃肉...");
    }
}

在上面的例子中,Animal是一个父类,它有一个eat方法;Cat和Dog是Animal的子类,它们重写了eat方法,并分别输出了不同的结果。接下来我们分别详细介绍一下继承和多态的使用方法。

继承的使用

在定义一个子类时,可以使用关键字extends来继承一个父类。子类继承父类的所有非私有属性和方法,并且可以继续扩展和重写父类的内容。下面是一个继承的示例代码:

class Animal {
    private int age;

    public void eat() {
        System.out.println("动物正在进食...");
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

class Cat extends Animal {
    private String name;

    public void catchMouse() {
        System.out.println("猫正在抓老鼠...");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

在上述代码中,Cat类继承了Animal类,并添加了一个catchMouse方法和一个name属性。

多态的使用

多态是指同一个方法具有不同的实现方式。在Java中,多态可以通过父类变量引用子类对象来实现。在父类中定义一个方法,然后在子类中重写该方法,子类对象调用父类方法时将自动调用其子类重写的方法。下面是一个多态的示例代码:

public class PolymorphismDemo {
    public static void main(String[] args) {
        Animal animal1 = new Cat();
        animal1.eat();

        Animal animal2 = new Dog();
        animal2.eat();
    }
}

class Animal {
    public void eat() {
        System.out.println("动物正在进食...");
    }
}

class Cat extends Animal {
    public void eat() {
        System.out.println("猫正在吃鱼...");
    }
}

class Dog extends Animal {
    public void eat() {
        System.out.println("狗正在吃肉...");
    }
}

在上述代码中,创建了一个Animal类型的变量animal1和一个Dog类型的变量animal2,然后通过它们分别调用eat方法。由于animal1和animal2是Animal类型的变量,它们引用的实际上是Cat和Dog对象,因此调用eat方法时自动调用了它们各自重写的方法,即cat.eat()和dog.eat()方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值