学习JAVA的第七天(基础)

目录

static

静态变量

静态方法

工具类:

static的注意事项

继承

继承的好处

继承的特点

方法的重写

书写格式

@override重写注解

方法重写的要求

this关键字

super关键字


static

  • static表示静态,是Java中的一个修饰符,可以修饰成员变量,成员方法。

静态变量

被static修饰的成员变量,叫静态变量

特点

被该类所有对象共享

不属于对象,属于类

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

调用方式:

类名调用

对象名调用

静态方法

被static修饰的成员方法,叫静态方法

特点:

多在测试类和工具类中

Javabean类中很少会用

调用方式:

类名调用

对象名调用

工具类:

不描述任何事物的类

java 复制代码
public class ArrayUtil {
    private ArrayUtil() {

    }
    //需要定义静态的,方便调用
    //输出数组内容
    public static String printArr(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for(int i = 0; i < arr.length; i++){
            if(i == arr.length-1){
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]+",");
            }
        }
        sb.append("]");
        return sb.toString();

    }

    //算平均数
    public static double getAverage(double[] arr) {
        double sum = 0;
        for(int i = 0; i < arr.length; i++){
            sum += arr[i];
        }
        return sum/arr.length;
    }
}

static的注意事项

  • 静态方法只能访问静态变量和静态方法
  • 非静态方法可以访问静态变量和静态方法,也可以访问非静态的成员变量和非静态的成员方法
  • 静态方法中没有this关键字

继承

java提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立继承关系

继承的好处

  • 提高了代码的复用性
  • 子类可以在父类的基础下,增加其他功能,使子类功能更加强大。

继承的特点

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

子类不能继承父类的构造方法

子类可以继承父类的成员变量,但不能直接使用父类中被private修饰的成员变量

只有父类中的虚方法(非private 非static 非final)才能被子类继承

继承中成员变量的调用方法 :就近原则

方法的重写

当父类的方法不能满足子类的需求时,需要进行方法重写

书写格式

在继承体系中,子类出现与父类一样的方法声明,我们就称子类的方法是重写的方法。

@override重写注解

@override放在重写的方法上面,验证子类重写的方法是否正确

方法重写的要求

重写方法的名称,形参列表必须与父类一致

重写方法时,访问权限子类必须>=父类

重写方法时,返回值类型必须<=父类

只有被添加到虚方法表的方法才能被重写

this关键字

理解成一个变量,表示当前方法调用者的地址值

super关键字

代表父类存储空间

| 关键字 | 访问成员变量 | 访问成员方法 | 访问构造方法 |
| this | this.成员变量 访问本类成员变量 | this.成员方法() 访问本类成员方法 | this(...) 访问本类构造方法 |

super super.成员变量 super.成员方法() 访问父类成员方法 super(...) 访问父类构造方法
相关推荐
@codercjw9 分钟前
方案制作(CAD)
学习
python零基础入门小白10 分钟前
从0到1:手把手教你用Coze打造AI Agent,小白也能转行AI!
人工智能·学习·程序员·大模型·agent·产品经理·ai大模型
蓝桉~MLGT1 小时前
中级软考(软件工程师)通关秘籍——核心知识点图表全汇总与扩展解析
学习·软件工程
fengci.1 小时前
CTF+随机困难题目
android·开发语言·前端·学习·php
一尘之中1 小时前
系统架构设计师知识体系综述:从核心概念到职业成长
学习·系统架构·ai写作
Daydream.V1 小时前
Transform学习
学习
風清掦1 小时前
【STM32学习笔记-12】Unix 时间戳、BKP 备份寄存器与 RTC 实时时钟
笔记·stm32·单片机·嵌入式硬件·学习·实时音视频·unix
python零基础入门小白1 小时前
Transformer、Token、RAG全解析,一篇读懂大模型核心机制!
人工智能·深度学习·学习·语言模型·大模型·transformer·产品经理
我是发哥哈2 小时前
东莞AI培训主流方案横向评测:5大选型维度解析
大数据·人工智能·学习·机器学习·chatgpt·ai编程
千寻girling2 小时前
机器学习 | 感知机 | 尚硅谷学习
人工智能·学习·机器学习