java基础三

本文详细介绍了Java中的面向对象编程概念,包括类、对象、构造方法、this关键字、static关键字、继承、super关键字、方法重写和多态。通过实例展示了如何创建类、对象,以及如何利用构造方法初始化对象,解释了this和super关键字的作用。文章还阐述了方法重写和多态在提高代码复用性和灵活性方面的重要性。
摘要由CSDN通过智能技术生成

1.面向对象

首先在java中,肯定都会听到这样一句,万物皆是对象。那么什么是对象?
1.如何描述对象:
静态的特征:眼睛里能看到的东西
动态的功能:能干嘛,可以干嘛

那么对象是如何产生的?对象是通过类来new出来的,没有对象,new一个!!!!
2.什么是类??
类是多个对象之间的共性,是对象的抽象,用于描述一组对象的共性
特点:
类中只有变量和方法
变量就是静态的属性
方法就是动态的功能
3.类和对象之间的关系
类是对象的抽象
对象是类的具体实例

2.类

类是用来描述一组对象静态和动态的特征
静态的特征称之为属性,例如:身高,体重,颜色,大小
动态的特征称之为行为/功能,例会,会吃饭,会喝水,会陪主人玩…

具体到代码中:
属性就是变量
行为就是方法

所以总结起来,类中只能有变量和方法
代码实例:
类中的变量(属性):
在这里插入图片描述
类中的方法:
在这里插入图片描述

3.对象

对象是有类new出来的
例如:
在这里插入图片描述

类和对象的关系就好比锅和模具之间的关系:锅是由模具产生出来的,现有模具才有锅。

4.构造方法

为什么要有构造方法
构造方法的功能主要是为了构造对象,在创建一个类完成的时候,系统会自动默认一个构造方法用来构造对象,但是由于有参无参,参数的不同。所有类中要求至少有俩个重载的构造方法,一个有参一个无参。所以需要创建构造方法
案例:
在这里插入图片描述

5.this关键字

this指代调用当前方法的那个对象
在这里插入图片描述

6.static关键字

静态,可以修饰方法,称之为静态方法,又可以修饰属性,称之为静态属性
静态即是类,静态方法称之为类方法,静态属性称之为类属性
不加static的,是成员属性和成员方法,是对象的成员,需要通过对象来调用
静态方法:
在这里插入图片描述
静态方法(类方法),不可以直接发起对成员属性和成员方法的调用(有了类,不一定有对象)
成员方法能发起对静态属性和静态方法的调用(有了对象,一定有类)

静态代码块:
在这里插入图片描述
静态代码块是用来把类加载到内存中使用的,在构造方法执行之前执行,
但只会执行一次,他对成员方法和成员变量都不能调用
用来做一些类启动的准备工作

总结:
1.静态的就是类的,需要类名去调用
2.有了类不一定有对象(静态方法中不能发起对成员方法和成员属性的调用)
3.有了对象一定是有类(成员方法中可以直接调用静态的方法和属性)
4.static{}(静态代码块)最先被执行,且只执行一次
5.自定义静态方法使用场景较少,静态属性使用较多,一般作为计数器使用

7.继承

继承是什么?继承的好处?继承的特点是什么?
定义:继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
好处:继承可以减少代码冗余,提高代码的可复用性
允许开发人员创建分等级层次的类
特点:1.子类去继承父类的非私有属性和行为
2.私有属性和行为不能被继承
3.构造方法不能被继承
4.java中的继承都是单继承,可以实现多重继承
案例:
创建一个Person类,定义属性和方法
在这里插入图片描述
在创建一个student类来继承Person类
在这里插入图片描述
可以发现学生类中的属性name,age,birthday 方法 showInfo()都有,是由Person父类中继承过来的,构造方法不能继承过来所以必须自己手写!并且除了可以继承父类中的方法,你也可以在student类中自己写别的方法study();

8.super关键字

和this关键字使用类似,指代父类/超类对象
this关键字指代调用当前方法的那个对象,this关键字也可以调用自己的构造方法
super关键字指代调用当前方法的那个对象的父类对象,super关键字也可调用自己父类的构造方法
1.可以调用父类的属性和行为
2.super()可以调用父类的构造方法,当时此句如果出现在子类构造方法中,必须是第一句
3.当子类构造方法中没有super();系统会默认添加一个到第一位

9.方法的重写

在继承过程中,子类中从父类继承来的方法无法满足自己的需求时,可以在子类中对父类方法进行完善,这个完善过程叫做方法重写(override),方法的重写相当于在子类中覆盖父类中的方法。
重写的要求:

1.首先必须要有继承
2.子类用自己的方式去改写了继承父类的方法的方法体

继承的语法:
1.方法上一定要有@override这样的注解来标识改方法是重写
2.重写的方法不能拥有比父类更严格的权限修饰符
3.重写的方法和被重写的方法具有相同的返回值,方法名,参数列表
案例:
重写eat()方法
在这里插入图片描述

10.多态

定义:所谓多态是指同一种行为在不同的对象身上有不同的表现形式。例如,H20,在不同的环境下有不同的状态

在这里定义一个父类animal类,在其中有eat()方法:
在这里插入图片描述
在创建子类Dog类
在这里插入图片描述
创建子类Cat类
在这里插入图片描述
通过Dog类和Cat类对animal类的继承,当子类调用animal类中的eat()方法只需要在各自的类中重写改方法就行,而在main程序中可以通过构造各自的对象例如:animal a=new Dog();用a来进行调用Dog中的eat方法,同时也可以animal c=new Cat(),c来调用Cat中的eat方法,这就是多态,以后可以在创建一些子类来继承父类animal类,这样就不需要重复创建子类中共有打方法,直接在父类中继承过来就行,可以减少代码的冗余,并且程序的可扩展性增强了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值