面向对象《一》

本文详细介绍了Java面向对象编程的核心概念,包括类与对象的关系、封装、继承和多态的实现。通过实例展示了如何创建和使用对象,封装属性和方法,以及如何进行方法的重载。同时,解释了类的继承特性,如单继承、多级继承,并阐述了super和this关键字的用途。最后,讨论了多态的概念及其在代码中的体现,强调了父类引用执行子类对象的能力。
摘要由CSDN通过智能技术生成

面向对象

面向对象:当需要实现一个功能的时候,找到实现功能的程序 强调对象

三大特性:封装、继承和多态。

标题类和对象的关系

  • 类是对一类事物的描述:是抽象的

  • 对象的一类事物的实例:是具体的

  • 类是对象的模板,对象是类的实体

    类:包括对象的属性和方法
    属性:对象具有的特征

对象的创建和使用

创建格式

类名 对象名称 = new 类名();
例如:
Person person = new Person(); //Person 是创建的类

对象的使用

使用成员变量:对象名. 类名称;
使用成员方法:对象名.类名称(参数);

类的封装

用到关键字

private 顾名思义 就是私有的意思,只能本类使用
封装就是将一些信息隐藏起来,对外界不可见

用到方法

setXxx(); 设置值或赋值 返回值类型是void
getXxx(); 获取值 返回值类型是和根据定义的变量的数据类型一样

class Student {
    //Student类中包含姓名、成绩两个属性
    private String name;
    private double score;
    //无参的构造方法
    public Student() {
    }
    //有参的构造方法
    public Student(String name, double score) {
        this.name = name;
        this.score = score;
    }
    public String getName() {
        return name;
    }

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

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }
}
方法的重载

根据相同的参数个数进行传参对应的方法
就算是同一方法名,都能根据参数的传入到对应方法

package ceshi.com;

public class Example01 {
    public static void main(String[] args) {
        int sum1 = add(1,2);//调用第一个两个参数都是int类型的方法
        double sum2 = add(10.0,1.2,13.2); //调用第二个,三个参数都是double类型的方法
        double sum3 = add(12.0,45.1);//调用第三个 ,两个参数都是double类型的方法
        int sum4 = add(1,4,78);//调用第四个,三个都是int类型的方法
        System.out.println(sum1);
        System.out.println(sum2);
        System.out.println(sum3);
        System.out.println(sum4);
    }

    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y,double z) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }
    public static int add(int x, int y,int z) {
        return x + y;
    }
}

类的继承

继承特点:
  • 1.Java语言是单继承的。一个类的直接父类只能有唯一一个。
  • 2.Java语言可以多级继承。我有一个父亲,我父亲还有一个父亲,也就是爷爷。
  • 3.一个子类的直接父类是唯一的,但是一个父类可以拥有很多个子类。可以有很多个兄弟姐妹,生二胎。

用到关键词

extends 继承父类

定义父类的格式:(一个普通的类定义)
public class父类名称{
    //...
}

定义子类的格式:
public class子类名称  extends  父类名称{  
    // ...
}

继承关系中,父子类构造方法的访问特点:

  1. 子类构造方法当中有一个默认隐含的“super()"调用,所以一定是先调用的父类构造,后执行的子类构造。
  2. 子类构造可以通过super关键字来调用父类重载构造。
  3. super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造
  4. 总结: 子类必须调用父类构造方法,不写则赠送super()﹔写了则用写的指定的super调用,super只能有一,还必须是第一个。

super关键字的用法有三种:

1.在子类的成员方法中,访问父类的成员变量。 2.在子类的成员方法中,访问父类的成员方法。
3.在子类的构造方法中,访问父类的构造方法。

This关键字
在这里插入图片描述

super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种:

  • 1.在本类的成员方法中,访问本类的成员变量。
  • 2.在本类的成员方法中,访问本类的另一个成员方法。
  • 3.在本类的构造方法中,访问本类的另一个构造方法。

在第三种用法当中要注意:

A. this ( …)调用也必须是构造方法的第一个语句,唯—一个。

B. super和this两种构造调用,不能同时使用。

类的多态

  • 代码 当中体现多态性:父类引用执行子类对象
  • 格式:
  • 父类名称 对象名 = new 子类名称();
    或者
  • 接口名称 对象名 = new 实现类名称();

多态不能访问子类的独有功能 通过类型的转换可以访问子类的功能
子到夫 :子类对象赋值给父类类型的变量指向

向上转型
class Animal{}//定义Animal类
class Dog extends Animal {} //Dog继承Animal
class Cat extends Animal{}//
Animal anl = new Dog();//实现了向上转型
向下转型 (就是还原动作)
//利用上面代码
Animal anl = new Dog();
Cat cat = new anl();//从动物变回猫
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫十二懿

你的支持就是写文章的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值