javaSE中的包,继承

javaSE中的包,继承

一、包

(package) 是组织类的一种方式.
使用包的主要目的是保证类的唯一性

1.1、导入java包中的 一个类
import:导入包中的类
package:“包”,指类所在的包。意思就是这里面包含了类。

import java.util.Arrays;//
public class TestDome {
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(Arrays.toString(array));
    }
}

当我们用Java中的方法时,比如toString()方法,就要导入 import java.util.Arrays这个类
import :导入包中的一个类。
java.util:这是一个 包。
Arrays :这是一个类。

有时候也看见一些 写法 import java.util.*
在这里插入图片描述
java中import 和C语言中include类似,import是导入一个 类,include是导入所有的.h文件
不同的包里可能相同的类
在这里插入图片描述

但是这种写法并不好,建议还是全部写完,会出现下面的请况,所以建议写完
在这里插入图片描述
如果不写完,那就要像下面这样写
在这里插入图片描述
1.2、将类放在包中
基本规则:
在文件的最上方加上一个 package 语句指定该代码在哪个包中.
包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bit.www)。
包名要和代码路径相匹配. 例如创建 com.bit.www 的包, 那么会存在一个对应的路径 com/bit/www 来存储代码.
如果一个类没有 package 语句, 则该类被放到一个默认包中
在这里插入图片描述
注意:包的名字必须是小写
在这里插入图片描述
接下来就可以在包里面创建类了

1.3、静态导入
在这里插入图片描述

在这里插入图片描述

1.3、包的访问权限
我们已经学了public和private
public:在哪里都可以使用
private:只能在同一个类里面使用
包的访问权限:只能在当前包中使用
在这里插入图片描述

int a = 10;前面没有修饰,默认是包访问权限
在这里插入图片描述
在这里插入图片描述

常见的系统包:

  1. java.lang:系统常用基础类(String、Object),此包从JDK1.1后自动导入。
  2. java.lang.reflect:java 反射编程包;
  3. java.net:进行网络编程开发包。
  4. java.sql:进行数据库开发的支持包。
  5. java.util:是java提供的工具程序包。(集合类等) 非常重要
  6. java.io:I/O编程开发包

二、继承(extends)

代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法).
有的时候客观事物之间就存在一些关联关系, 那么在表示成类和对象的时候也会存在一定的关联

下面我们创建两个动物鸟和狗

class Dog{
    public int age;
    public String name;

    public void eat(){
        System.out.println("吃饭");
    }
}

class Bird{
    public String wing;
    public int age;
    public String name;

    public void eat(){
        System.out.println("吃饭");
    }
    
    public void fly(){
        System.out.println("飞翔");
    }
} 


public class Test1 {

    public static void main(String[] args) {
        
    }
}

我们看见鸟和狗都有名字和年龄,都会吃,那我们将他们共有的特性给提出来
在这里插入图片描述
extends::就是继承的意思
Animal我们就称为父类或者基类或者超类
Dog和Bird:称为子类或者派生类
继承 就是将子类中共有的特性抽取出来,子类就继承了父类的普通成员和普通方法
2.1、基本语法

class Dog extends Animal{

}

class 子类 extends 父类{

}

2.2、public和private

public:子类会继承父类的所有 public 的字段和方法
在这里插入图片描述
private:对于父类的 private 的字段和方法, 子类中是无法访问的;

在这里插入图片描述

2.3、Java 中一个子类只能继承一个父类 (而C++/Python等语言支持多继承)
在这里插入图片描述
2.4、子类的实例中, 也包含着父类的实例. 可以使用 super 关键字得到父类实例的引用
在这里插入图片描述
在这里插入图片描述

super关键字的使用方法
在这里插入图片描述
当父类和子类有同名的属性的时候
优先访问自己的属性,除非用super来访问父类的属性
在这里插入图片描述

2.5、protected 关键字
刚才我们发现, 如果把字段设为 private, 子类不能访问. 但是设成 public, 又违背了我们 “封装” 的初衷.
两全其美的办法就是 protected 关键字.
对于类的调用者来说, protected 修饰的字段和方法是不能访问的
对于类的 子类 和 同一个包的其他类 来说, protected 修饰的字段和方法是可以访问的

在子类构造方法中super()必须放在子类构造方法中的第一行
super:不能出现在静态方法中
常见的用法:
1、super调用父类的构造方法
2、super调用父类的成员
3、super调用父类的方法
在这里插入图片描述
在这里插入图片描述
小结: Java 中对于字段和方法共有四种访问权限
private: 类内部能访问, 类外部不能访问
默认(也叫包访问权限default): 类内部能访问, 同一个包中的类可以访问, 其他类不能访问.
protected: 类内部能访问, 子类和同一个包中的类可以访问, 其他类不能访问.
public : 类内部和类的调用者都能访问
在这里插入图片描述

对于更复杂的继承关系:

加粗样式
这种继承就太复杂了,建议继承不要超过三层。

2.3、final关键字
final修饰的类不能被继承
在这里插入图片描述
final关键字
在这里插入图片描述

super和this的区别:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Später321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值