Java 面向对象进阶(2)

包、final、权限修饰符、

包就是文件夹,用来管理各种不同功能的Java类,方便后期代码维护

  • 包名的规则:域名反写+包的作用,英文小写,见名知义

使用其他类的规则:需要使用全类名(包名+类名)

import com.package.domain.Student使用这种方式

  • 使用同一个包中的类时,是不需要导包的
  • 使用java.lang包中的类时,不需要导包
  • 其他情况都需要导包
  • 如果同时使用两个包中的同名类,需要使用全类名

final

  • 修饰方法:表明该方法时最终方法,不能被重写
  • 修饰类:表明该类是最终类,不能被继承
  • 修饰变量:叫做常量,只能被赋值一次
  • 修饰方法和修饰类自己写代码时很少用

常量

作为系统的配置信息,方便维护,提高可读性
命名规则

  • 单个单词:全部大写
  • 多个单词:全部大写,单词之间用下划线隔开
    细节
  • final修饰的变量是基本类型:**数据值**不能发生改变
  • final修饰的变量是引用类型:**地址值**不能发生改变,但是对象内部的值可以改变

权限修饰符

  • 用来控制一个成员能够被访问的范围
  • 可以修饰成员变量、方法、构造方法、内部类
    分类
    作用范围由小到大(private <空着不写 < protected < public)
    作用范围:
修饰符同一个类中同一个包中其他类不同包下的子类不同包下的无关类
private
空着不写
protected
public

private:本类中用
默认:只能本包中用
protected:受保护的
public:公共的
使用规则
实际开发中,一般只用privatepublic

  • 成员变量私有
  • 方法公开
  • 特例:如果方法中的代码是抽取其他方法中的共性代码,这个共性代码的方法一般也私有

代码块

局部代码块

写在方法里的单独的{}
作用是:提前结束变量的生命周期
例:

public static void main(String[] args) {
	{
		int a = 10;  // 作用域只在所属的{}中
		sout(a);
	}// 出了这个范围,变量a就会从内存中消失
}

构造代码块

  • 写在成员位置的代码块,优先于构造方法执行。
    因此可以把重复的代码写在构造代码块中
  • 执行时机:在创建本类对象的时候,会先执行构造代码块,再执行构造方法
  • 缺点:不够灵活
  • 改进:将共同代码放进带参构造中,然后再别的构造方法中使用this(...)this里的参数就传入默认值null或0;或抽取成方法

静态代码块

  • 格式:static{}
  • 特点: 需要通过static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次
  • 使用场景:在类加载的时候,做一些数据初始化的时候使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值