面向对象基础知识总结

面向对象总结

版本:V1.0 时间:2021年5月1日

1、类与对象的概念

类: 是面向对象程序设计(OOP)实现信息封装的基础。类是用户定义的一种数据类型,也称类类型。每个类包含对象的特征(变量)和行为(方法)。

对象:万物皆对象。是靠类实例化出来的。 是一个存储器地址,其中拥有值

2、数据类型的数组

8种基本类型都有数组,则新建的数据类型也是有数组的。定义的方式同基本数据类型的定义。例如 :新建了Student的类(如下代码)

package ceshi;

class Student{
    private int id;
    private String name;
    private String address;
    public void sayhi(){
        system.out.print("大家好,我的名字是:"+name+",家庭住址为:"+address);
    }
}

该类可实例一个学生对象或一类学生对象。若实例一个对象,则String zs = new Student();若为一类对象,则需要使用数组:Student[] stus = new Student[n]; n代表数量。

3、重写与重载

1)重写:修饰词、返回值类型、方法名、参数列表相同也可以不同,方法体不同;重载,方法名相同即可

2)重写发生在运行期绑定,看的是实例化对象;重载发生在编译期,看的是数据类型

3)重写用的比较多,多发生在继承、抽象类、接口等,在继承中,若觉得超类的方法不是很好,则可以进行重写;若调用抽象类或接口中,则里面的方法必须进行重写

4)重载多发生在一个方法可以传不同的参数,实现不同的方法

4、构造函数

构造函数的命名规则很简单,就是类的名称构成的方法,也就是实例化对象时后面的括号是否传递参数;一个类中默认有一个构造方法

构建构造函数,以上述2中的Student代码,其中加一个构造函数:
class Student{
    Student(参数){
        //方法体
    }
}

5、一个类的介绍

一个类中主要包括:packer(当前包名称)、import(若需导包,则使用)、控制修饰词(public、protected、默认、private)、static(静态)、final(最终的、不可变的)

1)控制修饰词:在java中,修饰词共计有4中:public(公开的)、protected(受保护的)、默认(变量或方法前没修饰词)、private(私有的);变量或方法加上上述的4种修饰词后所涉及的范围,参见下表:

本类同包类子类其他类
public可以可以可以可以
protected可以可以可以不可以
默认可以可以不可以不可以
private可以不可以不可以不可以
编程时需注意的是:数据私有化,行为公开化;若在继承过程中,超类中的变量建议为protected,子类的变量建议为private进行修饰;若发生在普通类中,则变量建议为private,方法则使用public修饰即可

2)final:最终的,不可变的;若使用final修饰变量或方法时,不能进行改变

	final int a = 5;
	int b = 6;
	a=b;

上述代码报错,报错内容:The final local variable a cannot be assigned. It must be blank and not using a compound assignment;不能进行被改变

3)static:静态的;若为static进行修饰时,该变量或方法存储的位置为方法区中,程序仅加载一次,则若为static修饰的变量存储的大部分是视频、图片、标题等;

4)static final:常量;定义一个常量使用,若定义状态时使用等

6、继承

1)在一个项目中,有大量的类,若多个类中有相同的变量和方法时,则可将其抽取到一个类中,其他类进行继承该类即可;

2)类与类可发生继承,接口与接口可发生继承,一个类有且仅可继承一个类

3)修饰词为:extends,派生类若继承超类,若超类中有构造方法需传参时,则使用super()方法传参即可,super是默认的

7、抽象类

1)多个类发生继承时,若每个派生类调用该类中的方法都需进行重写,则可在超类中定义该方法为派生方法。若超类中有派生方法,则该类必须定义为抽象类

2)抽象类又名不完整类

3)修饰词:abstract;不需要方法体

public abstract class abstractDemo{
	public abstract void step();
}

8、匿名内部类

1)匿名内部类多发生在该类只被调用一次(定时器)

public class nimingDemo{
    Aoo o = new Aoo(){
        //重写即可
    };
}
class Aoo{
    
}

2)定时器的设置

import java.util.Timer;
import java.util.TimerTask;

class dingsq{
    public static void main(){
        Timer timer = new Timer();
        timer.schedule(new TimerTask(){
            system.out.print(111);
        },10,1000);//第一个参数说方法体,第二个参数是第一次开始执行方法体的时间,第三个参数是每两次执行程序中间的时间
    }
}

9、接口

1)定义一个类的修饰词为class,若定义一个接口则使用的修饰词为interface,若一个类实现该接口,则使用的关键字为implements;

2)接口中只能写常量和抽象方法;若不写static final或abstract修饰词时,系统自带存在

3)接口与接口之间可以进行继承;一个类可以实现多个接口,每个接口之间使用逗号隔开。

interface Aoo{
    private static final int INFO = 6;
    public abstract void step();
}

10、多态

1)多态,就是多种状态;符合既是。。。。也是。。。。的关系。例:小明既是学生,又是儿子。

2)多态中常见的方法是向上造型,向上造型时引用的数据类型是超类的,实例化的对象为派生类;向上造型后能点出来的东西就少了,只能点出来超类中的方法,若要点出来派生类中的方法,则需进行数据类型转换,即大类型强转为小类型,须在该实例对象前加括号,括号内容为小类型的数据类型

3)多态中常用的是类与类的继承,类与多种接口的实现。

(望各位业内人士提出宝贵意见)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值