栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java SE(五)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java SE(五)

1.集合

1.1集合概述

提供一个存储空间可变的存储模型,存储的数据容量可以发生变化

集合类有很多,目前我们先学习一个: ArrayList

ArrayList:

        可调整大小的数组实现

        : 是一种特殊的数据类型,泛型

怎么使用泛型

        在出现E的地方我们使用引用数据类型替代即可

ArrayList
ArrayList

1.2ArrayList构造方法和添加方法

方法名说明
public ArrayList()创建一个空的集合对象
public boolean add(E e)将指定的元素追加到此集合的末尾
public void add(int index,E element)在此集合中的指定位置插入指定的元素

1.3ArrayList的常用方法

方法名说明
public boolean remove(Object o)

删除指定的元素,返回删除是否成功

public E remove(int index)删除指定索引处的元素,返回被删除的元素
public E set(int index,E element)修改指定索引处的元素,返回被修改的元素
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素个数

2.继承

2.1继承概述

继承是面向对象三大特征之一。可以使得子类具有雷夫的属性和方法,还可以在子类中重新定义,追加属性和方法

2.1.1继承格式

格式: public class 子类名 extends 父类名{}

public class Zi extends Fu{

}

Fu: 是父类,也被称为基类、超类

Zi: 是子类,也被称为派生类

2.1.2继承中子类的特点

子类可以有父类的内容

子类可以有自己特有的内容

2.2继承的好处和弊端

继承好处

        提高了代码的复用性(多个类相同的成员可以放到一个类中)

        提高了代码的维护性(如果方法的代码需要修改,修改一处即可)

继承弊端

        继承让类与类之间产生关系,类的耦合性增强了,当父类发生变换时子类实现也不得不跟着变换,削弱了子类的独立性

2.2.1什么时候使用继承

        继承体现的关系: is a

        假设法: 我有两个类A和B,如果他们满足A是B的一种,或者B是A的一种,就说明他们存在继承关系,这个时候就可以考虑使用继承来体现,否则就不能滥用继承

2.3继承中变量的访问特点

在子类方法中访问一个变量

        子类局部范围找

        子类成员范围找

        父类成员范围找

        如果都没有就报错(不考虑父亲的父亲...)

2.4super

super关键字和this关键字的用法相似

        this: 代表本类对象的引用

        super: 代表父类存储空间的标识(可以理解为父类对象引用)

关键字访问成员变量访问构造方法访问成员方法
this

this.成员变量

访问本类成员变量

this(...)

访问本类的构造方法

this.成员方法(...)

访问本类成员方法

super

super.成员变量

访问父类成员方法

super(...)

访问父类构造方法

super.成员方法(...)

访问父类成员方法

2.5继承中构造方法的访问特点

子类中所有的构造方法默认都会访问父类中无参的构造方法

        因为子类汇集成父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化

        每一个子类构造方法的第一条语句默认都是: super()

如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?

        通过使用super关键字去显示的调用父类的带参构造方法

        在父类中自己提供一个无参构造方法

        推荐: 自己给出无参构造方法

2.6继承中成员方法的访问特点

通过子类对象访问一个方法

        子类成员范围找

        父类成员范围找

        如果都没有就报错(不考虑父亲的父亲...)

2.7方法重写

方法重写概述

        子类中出现了和父类中一模一样的方法声明

方法重写的应用

        当子类需要父类的功能,二功能主体子类有自己特有内容时,可以重写父类中的方法,这样,既沿袭了父类的功能,又定义了子类特有的内容

@Override

        是一个注解

        可以帮助我们检查重写方法的方法声明的正确性

2.8方法重写的注意事项

私有方法不能被重写(父类私有成员子类是不能继承的)

子类方法访问权限不能更低(public>默认>私有)

2.9Java中继承的注意事项

Java中类只支持单继承,不支持多继承

Java中类支持多层继承

3.修饰符

3.1包

其实就是文件夹

作用: 对类进行分类管理

3.1.1包的定义格式

格式: package 包名;

package test;

3.1.2带包的Java类编译和执行

        手动建包:

                按照意见的格式编译java文件   javac HelloWorld.java

                手动创建包   在E盘建立文件夹com,然后在com下建立文件夹test

                把class文件放到包的最里面   把HelloWorld.class文件放到com下的test文件夹下

                带包执行   java.com.test.HelloWorld

        自动建包: javac -d .HelloWorld.java   java.com.test.HelloWorld

3.2导包

使用不同包下的雷士,使用的时候要写写的全路径,写起来太麻烦了

为了简化带包的操作,Java就提供了导包的功能

3.2.1导包格式

格式: import 报名;

import java.util.Scanner;

3.3修饰符

3.3.1修饰符分类

权限修饰符

状态修饰符

3.3.2权限修饰符

修饰符同一个类中

同一个包中子类

无关类

不同包中子类不同包中的无关类
private
默认
protected
public

3.3.3状态修饰符

final(最终态)

static(静态)

3.4final

final关键字是最终的意思,可以修饰成员方法,成员变量,类

3.4.1final修饰的特点

修饰方法: 表明该方法是最终方法,不能被重写

修饰变量: 表明该变量是常量,不能再次被赋值

修饰类: 表明该类是最终类,不能被继承

3.5final修饰局部变量

变量是基本类型: final修饰指的是基本类型的数据值不能发生改变

变量是引用类型: final修饰指的是引用数据类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的

3.6static

static关键字是静态的意思,可以修饰成员方法,成员变量

3.6.1static修饰的特点

被类的所有对象共享

        这也是我们判断是否使用静态关键字的条件

可以通过类名调用

        当然,也可以通过对象名调用

        推荐使用类名调用

3.7static访问特点

非静态的成员方法

        能访问静态的成员变量

        能访问非静态的成员变量

        能访问静态的成员方法

        能访问非静态的成员方法

静态的成员方法

        能访问惊天的成员变量

        能访问静态的成员方法

总结成一句话就是: 静态成员方法只能访问静态成员

4.多态

4.1多态概述

同一个对象,在不同时刻的表现出的不同形态

举例: 猫

我们可以说猫是猫: 猫 cat = new 猫();

我们也可以说猫是动物: 动物 animal = new 猫();

这里猫在不同的时刻表现出来了不同的形态,这就是多态

多态的前提和体现

        有继承/实现关系

        有方法重写

        有父类引用指向之类对象

4.2多态中成员访问特点

成员变量: 编译看左边,执行看左边

成员方法: 编译看左边,执行看右边

为什么成员变量金额成员方法的访问不一样呢?

        因为成员方法有重写,而成员变量没有

4.3多态的好处和弊端

多态的好处: 提高了程序的扩展性

        具体体现: 定义方法的时候,使用父类作为参数,将来在使用的时候,使用具体的子类类型参与操作

多态的弊端: 不能使用子类特有功能

4.4多态中的转型

向上转型

        从子到父

        父类引用指向子类对象

向下转型

        从父到子

        父类引用转为子类对象

5.抽象类

5.1抽象类概述

在Java中,一个没有方法体的方法应该定义为抽象方法,二类中如果有抽象方法,该类必须定义为抽象类

5.2抽象类的特点

抽象类和抽象方法必须使用abstract关键字修饰

        public abstract class 类名{}

        public abstract void eat();

抽象类中不一定有抽象方法,有抽象方法一定是抽象类

抽象类不能实例化

        抽象如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态

抽象类的子类

        要么重写抽象类中的所有抽象方法

        要么是抽象类

5.3抽象类的成员特点

成员变量

        可以是变量

        也可以是常量

构造方法

        有构造方法,但是不能实例化

        那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化

成员方法

        可以有抽象方法: 限定子类必须完成某些动作

        也可以有非抽象方法: 提高代码复用性        

6.接口

6.1接口概述

接口就是一种公共的规范标准,只要符合规范标准,大街都可以通用

Java中的接口更多的体现在对行为的抽象

6.2接口的特点

接口用关键字interface修饰

        public interface 接口名{}

类实现接口implement表示

        public class 类名 implement 接口名{}

接口不能实例化

        接口如何实例化呢?参照多态的方式,通过实现对象实例化,这叫接口多态

        多态的形式: 具体类多态,抽象类多态,接口多态

        多态的前提: 有继承或者实现关系;有方法重写;有父(类/接口)引用指向(子/实现)类对象

接口的实现类

        要么重写接口中的所有抽象方法

        要么是抽象类

6.3接口的成员特点

成员变量

        只能是常量

        默认修饰符: public static final

构造方法

        接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在

        一个类如果没有父类,默认继承自Object类

成员方法

        只能是抽象方法

        默认修饰符: public abstract

        关于接口中的方法,JDK8和JDK9中有一些新特性,后面再讲解

6.4类和接口的关系

类和类的关系

        继承关系,只能单继承,但是可以多层继承

类和接口的关系

        实现关系,可以但实现,也可以多实现,还可以在继承一个类的同时实现多个接口

接口和接口的关系

        继承关系,可以单继承,也可以多继承

6.5抽象类和接口的区别

成员区别

        抽象类        变量,常量;有构造方法;有抽象方法,也有非抽象方法

        接口           常量;抽象方法

关系区别

        类与类        继承,单继承

        类与接口     实现,可以单继承,也可以多实现

        接口与接口  继承,单继承,多继承

抽象类是对事物的抽象,而接口是对行为的抽象

7.形参与返回值

7.1类名作为形参和返回值

方法的形参是类名,其实需要的是该类的对象

方法的返回值是类名,其实返回的是该类型的对象

7.2抽象类名作为形参和返回值

方法的形参是抽象类名,其实需要的是该抽象类的子类对象

方法的返回值是抽象类名,其实返回的是该抽象类的子类对象

7.3接口名作为形参和返回值

方法的新参是接口名,其实需要的是该接口的实现类对象

方法的返回值的接口名,其实返回的是该接口的实现类对象

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号