包和final

     

1.1 包

包在操作系统中其实就是一个文件夹。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。

在IDEA项目中,建包的操作如下:

   

名的命名规范

路径名.路径名.xxx.xxx
// 例如:com.itheima.oa

  • 包名一般是公司域名的倒写。例如:黑马是www.itheima.com,包名就可以定义成com.itheima.技术名称。

  • 包名必须用”.“连接。

  • 包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。

1.2 导包

什么时候需要导包?

情况一:在使用Java中提供的非核心包中的类时

情况二:使用自己写的其他包中的类时

什么时候不需要导包?

情况一:在使用Java核心包(java.lang)中的类时

情况二:在使用自己写的同一个包中的类时

 

1.3 使用不同包下的相同类怎么办?

假设demo1和demo2中都有一个Student该如何使用?

代码示例:

//使用全类名的形式即可。
//全类名:包名 + 类名
//拷贝全类名的快捷键:选中类名crtl + shift + alt + c 或者用鼠标点copy,再点击copy Reference
com.itheima.homework.demo1.Student s1 = new com.itheima.homework.demo1.Student();
com.itheima.homework.demo2.Student s2 = new com.itheima.homework.demo2.Student();

2.1final关键字

学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。

如果有一个方法我不想别人去改写里面内容,该怎么办呢?

Java提供了final 关键字,表示修饰的内容不可变。

final修饰方法
表明该方法是最终方法,不能被重写
final修饰类
表面该类是最终类,不能被继承
final修饰变量
叫做常量,只能被赋值一次

测试类


public class finaldemo01 {
    public static void main(String[] args) {
        /*
        final修饰方法
        表明该方法是最终方法,不能被重写
        final修饰类
        表面该类是最终类,不能被继承
        final修饰变量
        叫做常量,只能被赋值一次
         */
    }
}

父类

class  Fu{
        public final void show(){
            System.out.println("父类的show方法");
        }
    }

子类

 class zi extends Fu{
        @Override
        public void show() {
            System.out.println("子类的show方法");//报错是因为父类加了final修饰,所以子类的show方法不能重写
        }
    }
public class Test {
    public static void main(String[] args) {
        final int  a=10;
        a=30;//报错的原因,常量不能被赋值

    }
}

ublic class test {
    /*
    final修饰基本数据类型的时候,记录的值不能发生改变
    final修饰引用数据类型的时候,记录的值不能发生改变,内部属性的值还是可以改变的
     */
    public static void main(String[] args) {
        final double pi = 3.14159265359;
        //pi=6.1

        Student S = new Student();
        S.setAge(18);//记录的值不能发生改变,内部属性的值还是可以改变的
        S.setName("zhangsan");
        //S=new Student()
        System.out.println(S.getAge()+" "+S.getName());
        //数组
        final int []arr={1,2,3,4,5};
        arr[0]=111;
        arr[1]=222;
        arr[2]=333;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值