JAVA面向对象

一、面向对象基础

1.基本概念

对象:用来描述客观事物的一个实体,由一组属性和方法构成。

类:具有相同属性和方法的一组对象的集合。

类是对象的抽象,对象是类的具体。

定义类的步骤:

(1)定义类名

(2)编写类的属性

(3)编写类的方法

方法代码模板/语法:访问修饰符+返回值类型+方法名(){方法主体}

创建对象语法:类名  对象名=new 类名();

2.参数

带参数的方法可以接受用户输入的内容。创建方法时定义的参数叫做形式参数,简称形参。调用方法时传入的参数叫做实际参数,简称实参。

方法有没有返回值和方法有没有参数没有关系,方法参数可以有一个,也可以有多个,中间用逗号隔开。形参和实参的数量要一致,数据类型要一致。实参和形参的类型必须一致,名字可以一致,也可以不一致。

3.方法调用

(1)同类时,直接写方法名

(2)不同类时,先创建对象,用对象调方法。

4.方法重载

同类、同名、不同参

在同一类中,方法名相同,参数的个数或者类型不同。

5.成员变量和局部变量的区别

(1)作用域不同:局部变量的作用域仅限于定义它的方法,在该方法外无法访问它。成员变量的作用域在整个类内部 都是可见的,所有的成员方法都可以使用它,如果访问权限允许,还可以在类外部 使用成员变量。

(2)初始值不同:对于成员变量,如果在类定义中没有赋予初始值,java会给它一个默认值。但是 java不会给局部变量赋予初始值,因此局部 变量必须要定义并赋值后再使用

(3)再同一个方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量

(4)局部变量 可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。

6.构造方法

定义构造方法的语法:访问修饰符  方法名(参数列表){方法体}

所有类中都有一个默认和类名一样,并且没有返回值类型的特殊方法。

作用是创建对象,赋初始值。

构造方法默认提供一个无参,但是一旦系统发现自定义了,就不再分配无参构造函数了。

7.访问修饰 符

public:访问权限为任何地方

protected:访问权限是子类及其以下

默认修饰符:访问权限是同一包中

private:访问权限是同一类中

二:继承和多态

继承通过 extends关键字实现

用super关键字调用父类

object为超级父类,是所有类的父类

方法 重写:

--重写方法和被重写方法必须具有相同的方法名

--重写方法和被重写方法必须具有相同的参数列表

--重写方法和被重写方法的返回值类型必须相同

--重写方法不能缩小被重写方法的访问权限

方法重载和方法重写的区别:

方法重载涉及同一类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关。

方法重写涉及的是子类和父类之间 的同名方法,要求方法名相同、参数列表相同。返回值类型相同。

子类向父类转:<父类型><引用变量名>=new <子类型>();

父类向子类转:<子类型><引用变量名>=(<子类型>)<父类型的引用变量名>

instanceof:判断某一个对象是否属于某一种类型。

多态的优势:

--可替换性:多态对已存在的代码具有可 替换性

--可扩充性:多态 对代码具有可扩充性。

--接口性:多态是父类向子类提供了一个共同接口,由子类来具体实现。

--灵活性:多态在应用中体现了灵活多样的操作,提高了使用效率。

--简化性:多态简化了应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

三、抽象类和接口

1.抽象类

当一个类或者一个类的方法被abstract修饰,成为抽象类或者抽象方法。

当一个方法被定义成一个抽象方法后,意味着该方法不会有具体的实现,而是在抽象类的子类中通过方法重写进行实现。

访问修饰符  abstract <返回值类型><方法名>(参数列表);

抽象方法没有方法体,抽象类不能被实例化。

--可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类。

--如果子类没有实现父类的所有抽象方法,子类必须被定义为 抽象类。

--没有抽象构造方法,也没有抽象静态方法。

--抽象类中可以有非抽象的构造方法,创建子类的实例时可以调用。

2.接口

接口是一个不能实例化的类型,接口的变量是静态常量。

定义 接口使用interface修饰符,访问修饰符只能是public,接口成员可以是全局常量和公共的抽象方法。

使用接口必须通过子类,子类通过implements关键字实现接口。

实现接口的类必须实现接口中定义的所有抽象方法。

一个普通类只能继承一个父类,但是可以同时继承多个接口,也可以同时继承抽象类和实现接口。

抽象类vs接口

相同点:

--代表系统的抽象层

--都不能被实例化

--都能包含抽象方法

不同点:

--在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法。

--一个类只能继承一个直接父类,但是可以实现多个接口。

--已存在的继承树,可以方便的抽取接口,但是抽取抽象类不容易。

使用原则:

--接口做系统与外界交互的窗口

--接口本身一旦制定,就不允许随意修改

--抽象类可完成部分功能实现,还有部分功能可作为系统的扩展点

四、异常

所有的异常类型都是Throwable类的子类,它有两个子类:Error类和Exception类

(1)Error类:仅靠程序本身无法恢复的严重错误,如内存溢出、动态链接失败、虚拟机错误。

(2)Exception类:由java应用程序抛出和处理的非严重错误,如所需文件找不到、网络连接不通或者连接中断、算术运算出错、数组下标越界、装载一个不存在的类、对null对象操作、类型转换异常等。

java异常处理通过5个关键字实现:try/catch/finally/throw/throws

try-catch块中存在return语句,finally块继续执行,执行顺序为先执行catch块,发现异常,处理异常,然后执行finally块,最后跳回return。finally唯一不执行的情况是:System.exit(1);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值