包、import、修饰符(java学习第十九天)

本文详细解读Java中的包结构、import语句、权限修饰符(private、default、protected、public)以及final关键字的使用,通过实例演示类间访问权限和继承限制。适合理解Java封装和继承特性的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

包的作用: 对类进行分类管理

定义格式: packge.包名(多级包用.分开)

手动建包

自动建包  javac -d .  HelloWorld.java

import格式  import  包名  (此处表示怀疑,应该是导入包下面的类)

权限修饰符

修饰符同一个类同一个包中的子类、无关类不同包中的子类不同包中的无关类
privateV
默认VV
protectedVVV
publicVVVV

测试代码如下,另外还测试了同一个包中子类构造父类的实例和不同包中子类构造父类的实例的情况,发现都是一样的

package day20a;

public class Fu {
    private void  show1(String args){
        System.out.println("这是private");
    }

    void  show2(String args){
        System.out.println("这是默认");
    }

    protected void  show3(String args){
        System.out.println("这是protected");
    }

    public void  show4(String args){
        System.out.println("这是public");
    }

    public static void main(String[] args) {
        Fu f = new Fu();
        f.show1("1");
        f.show2("2");
        f.show3("3");
        f.show4("4");
    }
}



package day20a;

public class Zi extends Fu {
    public static void main(String[] args) {
        Fu f2 = new  Fu();
        //private方法无法访问
        //f2.show1("1");
        f2.show2("2");
        f2.show3("3");
        f2.show4("4");

        Zi z = new Zi();
        z.show2("2");
        z.show3("3");
        z.show4("4");
        //一样的,同一个包中的子类,不管是构造父类或者子类,都只能访问父类的非private

    }
}




package day20a;

public class Other {
    public static void main(String[] args) {
        Fu f3 = new Fu();
        //同一个包下的其他类也无法访问private
        //f3.show1("1");
        f3.show2("2");
        f3.show3("3");
        f3.show4("4");
    }
}


package day20b;

import day20a.Fu;

public class Test1 extends Fu {
    public static void main(String[] args) {
        //备注:如果在子类访问父类,不同包中,也只能访问public
        Fu f4 = new Fu();
        //123都不行
        //f4.show1("1");
        //f4.show2("2");
        //f4.show3("3");
        f4.show4("4");

        Test1 t1 = new  Test1();
        t1.show3("3");
        t1.show4("4");

    }
}



package day20b;
import day20a.Fu;
public class Test2 {
    public static void main(String[] args) {
        Fu f5 = new Fu();
        //123都不行
        //f5.show1("1");
        //f5.show2("2");
        //f5.show3("3");
        f5.show4("4");
    }
}

状态修饰符

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

如果在父类中的某个方法、变量、类用final写了,那么子类就不能重写、重新赋值、继承

比如 public final void  show4       public final int age =22     public  final  class  Fu

final修饰局部变量

如果变量是基本类型:final修饰基本类型的数据值不能改变

如果变量是引用类型: final修饰引用类的地址值不能改变,但是地址里面的变量是可以变化的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值