Java面向对象复习

Java面向对象

几个概念

对象

一切皆对象,你看到的任务东西,都可以当成一个对象。

      对象有静态的属性和动态的行为组成。

              学生: 

                      静态的属性:名字,身高,体重,班级,专业

                      动态的方法:打架,玩游戏,写作业,介绍

抽象

从一个具体的对象中抽取一组数据的过程,去除一些个性的属性。

     学生:名字,身高,体重,班级,专业、血型、成绩

     成绩管理系统:

              名字,班级,专业、成绩

     健康档案系统:

              名字,身高,体重、血型

一组具有相同属性和行为 对象抽象

public class Student {
    /**
     *静态的属性
     */
    private String name;
    private double height;
    private String classId;
    /**
     * 动态的方法
     */
    public void introduceMyself()
    {
        System.out.println("姓名"+name+"身高"
                +height+"班级"+classId);
    }
}

消息

给某个对象发送的请求,比如,学生去打架

方法调用

面向对象基本特征

封装:

     给对象一个边界,内部信息尽量隐藏,对外只提供接口

     封装可以使得对象更加安全、容易。

继承:

     继承就是允许后代使用前辈已经拥有的东西。

     继承也是一种代码重用机制。

多态:

     同一个消息,发送给不同的对象,他们所做的相同不同。
继承
public  class Father {
    public     String name;    //全,外部包 public
    protected  String sex;     //子类protected
    private    int    age;      //类本部 private

    public Father(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public void introduction()
    {
        System.out.println("姓名"+name+"性别"
                +sex+"年龄"+age);
    }
}
public class Son extends Father {
    public Son(String name, String sex, int age) {
        super(name, sex, age);
    }

}

多态
public abstract class Animal {
    public String name;

    public Animal(String name) {
        this.name = name;
    }

    public abstract void shout();
}
class Cat extends Animal{

    public Cat(String name) {
        super(name);
    }

    @Override
    public void shout() {
        System.out.println("喵喵"+name);
    }
}
class Dog extends Animal{

    public Dog(String name) {
        super(name);
    }

    @Override
    public void shout() {
        System.out.println("旺旺"+name);
    }
}

### Java面向对象编程概念复习 #### 1. 面向对象编程基础 Java是一种支持面向对象编程(OOP)的语言,其核心理念围绕着类和对象展开。通过封装、继承、多态三大特性来实现代码的重用性和灵活性[^1]。 #### 2. 类与对象 在Java中,`class`定义了一组具有相同属性和行为的对象模板;而`object`则是该类的具体实例化形式。创建新对象通常采用如下方式: ```java // 定义一个简单的Student类 public class Student { String name; int age; public void study() { System.out.println(name + " is studying."); } } // 创建并初始化一个新的学生对象 Student student = new Student(); student.name = "Alice"; student.age = 20; ``` #### 3. 封装 封装是指隐藏内部数据结构并将方法暴露给外部调用者的过程。这可以通过设置访问修饰符(private, protected, public)以及提供getter/setter接口来完成[^2]。 ```java public class Person { private String name; // 私有字段 // Getter 和 Setter 方法 public String getName() { return this.name; } public void setName(String newName) { this.name = newName; } } ``` #### 4. 继承 继承允许子类从父类那里获得所有的公共成员变量和方法,并可以在此基础上扩展新的功能或覆盖已有函数。关键字`extends`用于表示这种关系[^3]。 ```java class Animal { public void eat() { System.out.println("Eating..."); } } class Dog extends Animal { @Override public void eat() { super.eat(); // 调用父类的方法 System.out.println("Dog eating meat..."); } public void bark() { System.out.println("Barking..."); } } ``` #### 5. 多态 多态性使得不同类型的对象能够以统一的方式被处理。它主要体现在两个方面:编译时绑定(静态/早期绑定)和运行时绑定(动态/晚期绑定)[^4]。 ```java Animal animal = new Dog(); animal.eat(); // 运行时决定实际执行哪个版本的eat() ((Dog) animal).bark(); // 显式转换后可调用特定于子类的方法 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值