首页 > 编程语言 >5_Java对象

5_Java对象

时间:2023-02-12 16:36:52浏览次数:37  
标签:Java 对象 子类 接口 继承 抽象类 父类 方法

面向对象编程

对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

  • 面向对象编程(Object-Oriented Programming, OOP)

  • OOP本质:以类的方式组织代码,以对象的组织(封装)数据。

  • 抽象

  • 三大特性

    • 封装
    • 继承
    • 多态
  • 从认识角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。

  • 从代码运行角度考虑是现有类后有对象。类是对象的模板。

创建与初始化对象

  • 使用new关键字创建对象(除了会分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类型中构造器的调用)

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下特点:

    • 必须和类的名字相同

    • 必须没有返回类型,也不能写void

    构造器作用:

    • 使用new关键字本质是在调用构造器
    • 初始化对象的值

​ 注意点:定义有参构造器之后,如果想使用无参构造,需要定义一个无参构造

生成构造器快捷键:"alt + insert"

封装

“高内聚,低耦合”

“属性私有(private), get/set”

public class stu{
    //属性私有
    private String name;
    private int id;
    private char sex;
}
	//提供一些可以操作这个属性的方法(public的get/set方法)
	public String getName(){
        return this.name;
    }
	public void setName(String name){
        this.name = name;
    }

快捷键:"alt + insert"(我的没有)

继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
  • extends的意思是“扩展”。子类是父类的扩展。
  • Java中类只有单继承,没有多继承!一个儿子只有一个爸爸
  • 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等 。
  • 继承关系的俩个类,为子类(派生类)和父类(基类)。子类继承父类,用关键字extends表示。
  • 子类和父类之间,从意义上讲应该具有“is a”的关系。
  • 私有的(private)无法被继承。
  • 在Java中,所有的类都默认直接或间接继承Object类

super

  • super调用父类的构造方法,必须在构造方法的第一个
  • super必须只能出现在子类的方法或构造方法中
  • super和this不能同时调用构造方法

super与this区别

代表的对象 前提 构造方法
this 本身调用者这个对象 没有继承也可以使用 this();本类的构造
super 代表父类对象的引用 只能在继承条件下用 super();父类的构造

方法重写

重写都是方法的重写,和属性无关

父类的引用指向了子类

  • 前提:需要有继承关系,子类重写父类的方法
  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符:范围可以扩大但不能缩小(public>Protected>Default>private)
  4. 抛出的异常:范围可以缩小但不能扩大

重写,子类的方法和父类必须要一致,方法体不同

  • 重写原因:父类的功能子类不一定需要或者不一定满足

快捷键“alt + insert;Override”

多态

  1. 多态是方法的多态,属性没有多态
  2. 父类和子类有联系(类型转换异常,ClassCastException)
  3. 存在条件:继承关系、方法需要重写、父类引用指向子类对象

instanceof

x instanceof y能否编译通过取决于二者之间是否存在父子关系

  • 父类引用指向子类的对象
  • 把子类转换为父类,向上转型
  • 把父类转换为子类,向下转型。需要强制转换,可能会丢失一些方法
  • 方便方法的调用,减少重复的代码

抽象类

  • 单继承,接口可以多继承。

  • abstract修饰符可以用来修饰方法也可以修饰类,修饰方法(类),该方法(类)就是抽象方法(类)

  • 抽象类中可以没有抽象方法,但是由抽象方法的类一定要声明为抽象类。

  • 抽象类不能使用new关键字来创建对象,它是用来让子类继承的。

  • 抽象方法只有方法的声明,没有方法的实现,它是用来让子类实现的。

  • 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。

接口(interface)

普通类 抽象类 接口
只有具体实现 具体实现和规范(抽象方法)都有 只有规范,自己无法写方法
  • 接口就是规范。定义的一组规则,体现了现实世界中“如果你是…则必须能…”的思想。
  • 接口的本质是契约,就像法律一样,制定好后大家都遵守。
  • 接口中的所有定义都是抽象的(public abstract)。
  • 类可以实现接口(implement 接口)。
  • 实现接口的类,需要重写接口中的方法。
  • 利用接口可以实现多继承。

内部类

就是在一个类的内部定义一个类

  1. 成员内部类
  2. 静态内部类
  3. 局部内部类
  4. 匿名内部类

异常处理机制

关键字:try、catch、finally、throw、throws

标签:Java,对象,子类,接口,继承,抽象类,父类,方法
From: https://www.cnblogs.com/yfy--/p/17114007.html

相关文章

  • java——spring boot集成RabbitMQ——简单模式示例——实现消费者
    1、引入依赖                                               ......
  • maven的java工程取mysql数据库数据
    maven的java工程取mysql数据库数据maven的java工程取mysql数据库数据创建User实体类: publicclassUser{privateintid;privateStringNAME;@Ov......
  • 2023最全Java面试题及答案整理汇总
    前言面试前还是很有必要针对性的刷一些题,很多朋友的实战能力很强,但是理论比较薄弱,面试前不做准备是很吃亏的。这里整理了很多面试常考的一些面试题,希望能帮助到你面试前的......
  • java——spring boot集成RabbitMQ——简单模式示例——实现生产者
     各种队列模式            1、引入依赖:                             ......
  • Java入门
    Java&JDK简介Java是sun公司在1995年开发的一门计算机高级编程语言Java早期被称为Oak(橡树),商标被注册,后期改为Java(印度一个盛产咖啡的小岛)Java的爸爸:JamesGosling2009年......
  • JAVA多线程(一)--实现/创建方式
    JAVA多线程(一)--实现/创建方式一、继承Thread类Thread类本质上是一个实现了Runnable接口的实例,代表一个线程的实例。启动线程的唯一方法是调用Thread类的start()方法,sta......
  • Gson_Java对象转为json对象
    在对客户端进行相应的时候,要把一个JavaBean对象发送给浏览器,最好是转为json对象。   一、导入jar包  二、使用例子:把一个集合对象以json的格式响应给......
  • java——spring boot集成RabbitMQ——组件概念理解
    首先,什么是虚拟主机:   把一个rmq区域,分成多个虚拟区域,供不同主体使用。这样可以不相互干扰。也容易管理。 类似在一台服务器上面,安装多个虚拟机,供不同主题使用。......
  • 类和对象概述
    面向过程与面向对象区别、类和对象的概念、对象的创建和使用,对象的内存解析的简要介绍。Author:MsuenbDate:2023-02-07面向过程与面向对象面向过程和面向对象都是......
  • java 整数转换
    说明整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。代码publicintconvertInteger(intA,intB){   intarr=0;//统计   for......