javase__进阶 day1 关于static,继承和final

javase__进阶 day1

static关键字

static 关键字 : 修饰符, 可以修饰成员变量, 成员方法

static 关键字特点:

  • 被类的所有对象所共享

  • 多了一种调用方式, 可以通过类名进行调用 (推荐使用类名调用)

  • 随着类的加载而加载, 优先于对象存在

成员方法什么时候加入 static

  • 常用于制作工具类
  • 工具类: 不是描述事物的, 而是帮我们完成一些事情 (打工)

如果发现一个类中, 所有的方法, 全都是 static 所修饰

  • 私有该类的构造方法
  • 目的: 为了不让其他类, 再创建对象

注意事项:

  • static 方法中, 只能访问静态成员 (直接访问)

  • static 中不允许使用 this 关键字

通过static关键字重新认识 main 方法

public class HelloWorld { 
	public static void main(String[] args) {
    	System.out.println("HelloWorld");
    	}
    }

  • public: 被JVM调用,访问权限足够大

  • static: 被JVM调用,不用创建对象

​ 因为main方法是静态的,所以测试类中其他方法也需要是静态的

  • void: 被JVM调用,不需要给JVM返回值

  • main: 一个通用的名称,虽然不是关键字,但是被JVM识别

  • String[] args: 以前用于接收键盘录入数据的,现在没用

继承

继承的含义:

  • 继承:让类与类之间产生关系(子父类关系),子类可以直接使用父类中非私有的成员

继承的特点:

  • Java只支持单继承,不支持多继承,但支持多层继承

继承的格式

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

  • 范例:public class Zi extends Fu { }

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

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

什么时候使用继承?

  • 当类与类之间,存在相同(共性)的内容,并且产生了is a的关系,就可以考虑使用继承,来优化代码。

继承中成员的访问特点

成员变量
  • this:调用本类成员

  • super:调用父类成员

    public class Fu {
    int num = 10;
    }
    
    class Zi extends Fu {
    	int num = 20;
        public void method(){ 
        int num = 30;   
        System.out.println(num);            // 30        
        System.out.println(this.num);       // 20         
        System.out.println(super.num);      // 10    
        }
        }
    
    
成员方法
  • 方法重载(Overload) : 在同一个类中, 方法名相同, 参数不同, 与返回值无关
    参数不同: 类型不同, 个数不同, 顺序不同

  • 方法重写(Override) : 在子父类当中, 出现了方法声明一模一样的方法 (方法名, 参数, 返回值)

  • 在继承体系中,子类可以继承到父类的方法

    但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改

    这就需要采用方法的重写,方法重写又称方法覆盖

注意事项:
  • 父类中私有方法不能被重写

  • 子类重写父类方法时,访问权限必须大于等于父类

权限修饰符表:
权限修饰符同一个类中同一个包中不同包的子类不同包的无关类
private
(default)
protected
public
this 和 super
  • this:代表本类对象的引用

  • super:代表父类存储空间的标识

关键字访问成员变量访问成员方法访问构造方法
thisthis.本类成员变量;this.本类成员方法();this(); this(…);本类构造方法
supersuper.父类成员变量;super.父类成员方法();super(); super(…);super(); super(…);
super 调用父类成员的省略规则 :

super.父类成员变量 | super.父类成员方法()

-> 被调用的变量和方法, 在子类中不存在, super.可以直接省略的

注意:this() 和super()都在争夺构造方法第一行的位置,所以二者不能共存

final 关键字

含义

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

final 修饰的特点

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

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

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

  • 基本数据类型: 数据值不可改变

  • 引用数据类型: 地址值不可改变, 但是内容可以改变

final修饰成员变量的注意事项 :

  1. final修饰成员变量, 不允许修饰默认值
    2. final修饰成员变量的初始化时机

                   1). 在定义的时候直接赋值
                   2). 在构造方法中完成赋值
    

final修饰变量的命名规范 :

  • 如果变量名是一个单词, 所有字母大写 max MAX
  • 如果变量名是多个单词, 所有字母大写, 中间使用下划线分割 maxValue MAX_VALUE
  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值