JAVA学习笔记第七天——访问修饰符、final关键字、接口

一、回顾

ArrayList<E> int->Integer char->character
add(E) remove(int index) get(int index)
继承 extends
父类: 子类中共同的成员变量, 成员方法
子类: 会继承父类中所有的成员变量和成员方法
继承: 1 v 1
   构造方法的调用 super()
   方法的重写: 参数\返回值\方法名 一致
抽象方法:
没有方法体, 直接 ; 结束
需要使用 abstract 来修饰
抽象类: abstract
类中如果有抽象方法, 类就一定是抽象类
不能实例化, 有构造方法
子类继承抽象类, 就必须实现所有的抽象方法

Demo Class Fu

public class Fu {
    public int m1() {
        return 0;
    }

    protected long m2() {
        return 0;
    }

    Object m3() {
        return null;
    }

    private void m4() {

    }

    public static void m5() {

    }
}


Demo Class Zi

import java.util.ArrayList;

/*
    1.子类中的方法名和参数列表要和父类中一致
      @Override 检测这个方法是不是重写, 方法语法不符合重写, 就会报错
      如果语法符合, 没有加@Override, 也属于重写
    2.子类中的权限, [大于等于] 父类中的方法权限
    3.子类中的返回值, [小于等于] 父类中的返回值类型
      引用类型 小于等于: Zi -> Fu -> Object   Fu->Zi(×)
      基本数据类型, 只能相同
      Fu fu = new Zi(); // √
      Zi zi = new Fu(); // ×
    4.异常
 */
public class Zi extends Fu {
    @Override
    public int m1() {
        return 0;
    }

    protected long m2() {
        return 0;
    }
    @Override
    public ArrayList m3() {
        return null;
    }
//    @Override
    // 类方法, 不存在重写的概念
//    public static void m5() {
//
//    }
}

二、访问控制符/权限修饰符

修饰: 类, [静态]成员变量, [静态]成员方法, 构造方法(中括号代表可有可无)

public: 公开的, 公共的
protected: 受保护的
(default): 默认的, 不加default关键字, 不写任何内容
private: 私有的

权限范围由大到小: public->protected->default->private

default: 不常用, 练习时为了省略代码
public : 想要提供给其他类使用的成员
protected: 想要给子类继承的成员
private: 所有的普通成员变量

封装:

 为了保证成员变量的安全性, 给设置为私有的成员变量
     提供给外部访问这个成员变量的方法 get/set

JavaBean规范 -> 所有的实体类

1.命名 驼峰命名法
2.成员变量私有化, 提供get/set方法
3.提供空参构造方法

static: 静态的, 属于类的, 修饰成员变量/成员方法
abstract: 抽象的, 修饰类/成员方法

final: 最终的, 修饰类/成员方法/成员变量/局部变量

修饰类: 类不能被继承
修饰方法: 方法不能被重写
成员变量: 变量不能被修改, 必须初始化
局部变量: 变量不能被修改, 必须初始化
引用类型变量: 引用地址不能被修改, 内容可以修改

方法重写的详细规范:

1.子类中的方法名和参数列表要和父类中一致
   @Override 检测这个方法是不是重写, 方法语法不符合重写, 就会报错
   如果语法符合, 没有加@Override, 也属于重写
2.子类中的权限, [大于等于] 父类中的方法权限
3.子类中的返回值, [小于等于] 父类中的返回值类型
   引用类型 小于等于: Zi -> Fu -> Object   Fu->Zi(×)
 	  基本数据类型, 只能相同
 	  Fu fu = new Zi(); // √
   	  Zi zi = new Fu(); // ×
4.异常

接口: 特殊的抽象类

** 抽象类: 可能会存在抽象方法**

接口中可以有

不论什么版本
1.公开的抽象方法
 2.公开的静态常量
JDK8 开始
3.静态的方法 static
属于接口的, 通过接口直接调用
4.默认的方法 default
    通常用来做接口功能的扩展, 可以在实现类中覆盖
JDK9 开始
5.私有方法 private
    普通的私有方法: 为了给default方法中的公共代码提取, 实现代码复用
    静态的私有方法: 给static方法中公共代码提取的

回顾:

在类(静态)方法中, 不能直接调用成员变量和成员方法
成员方法中, 可以直接调用类方法和类变量

使用接口的步骤 implements:实现

1.接口不能直接new对象, 需要一个实现类来 实现接口
  public class A implements InterfaceA {

  }
  将接口中的所有抽象方法 覆盖重写(实现)
2.创建实现类对象, 调用方法
注意事项: 实现类没有覆盖重写(实现)所有的抽象方法, 这个实现类必须是抽象的

关系:

1.类和接口: 1 v n implements 实现
2.类和类 : 1 v 1 extends 继承
3.接口和接口: 1 v n extends 继承
4.接口和类: 没有

小结概念:

成员变量
成员方法
主方法
局部变量
初始化
实例化
赋值
方法返回值的接收

命名规则:

1.只能出现:英文 + 数字 + _ + $
2.不能以数字开头
3.变量名:可读性好、首字母小写、第二个单词开始首字母大写
4.包名:全部小写,域名倒写
	www.baidu.com
	com.baidu.zhidao.xx.xx
	com.baidu.baike.xx.xx
5.方法名: 首字母小写、第二个单词开始首字母大写 - 驼峰命名法
         长度不限, 但是一定要可读性好
6.类名: 驼峰命名法, 首字母大写
       System Scanner Math Arrays
7.常量: final 修饰的变量
       全部大写, 多个单词拼接, 使用 _
       EXIT_ON_CLOSE 见名知意
       静态常量 Math.PI -> 常量字段

示例文件数量太多,放在: 这里.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值