0
点赞
收藏
分享

微信扫一扫

2月8号学习笔记

互联网码农 2022-02-08 阅读 17

static静态关键字

如果一个成员变量使用了static关键字,那么这个变量将不再属于对象自己,而是属于所在的类,多个对象共用一份数据

一旦static修饰成员方法,那么就成为了静态方法,静态方法不属于对象,而是属于类的

如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它

对于静态方法来说,可以通过对象名进行调用,也可以直接通过类名称调用

如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它

如果有了static关键字,那么不需要创建对象,直接就能通过类名称来使用

无论成员变量还是成员方法,如果有了static,都推荐使用类名称来调用

静态变量:类名称.静态变量

静态方法:类名称.静态方法(参数)

【注意】:

1 静态不能直接访问非静态

原因:因为在内存中【先】有静态内容,【后】有非静态内容

2 静态方法中不能用this

原因:this代表当前对象,通过谁调用的方法,谁就是当前对象

静态代码块的格式是

public class 类名称{

static{

静态代码块的内容

}

}

特点:当第一次用到本类时,静态代码块执行唯一的一次

静态内容总是优于非静态,所以静态代码块比构造方法先执行

Java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作

public static String toString(数组):将参数数组变成字符串(按照默认格式[元素1,元素2,元素3,......])

public  static void sort(数组):按照默认升序(从小到大)对数组元素进行排序

备注:

1  如果是数值,sort默认升序从小到大

2  如果是字符串,sort默认按照字母升序

3  如果是自定义类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持

java.util.Math类是数学相关的工具类,里面提供了大量静态方法,完成与数学运算相关的操作

public static double abs(double num):获取绝对值

public static double ceil(double num):向上取整

public static double floor(double num):向下取整

public static long round(double num):四舍五入

面向对象的三大特征:封装性,继承性,多态性

继承是多态的前提,如果没有继承,就没有多态

在继承的关系中,“子类就是父类”

定义父类的格式(一个普通的类定义)

public class 父类名称{

        //.....

}

定义子类的格式

public class 子类名称 extends 父类名称{

        //...

}

在父子类继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式

直接通过子类对象访问成员变量:

等号左边是谁,就优先用谁,没有则向上找

间接通过成员方法访问成员变量:

该方法属于谁,就优先用谁,没有则向上找

【注意事项】:无论是成员方法还是成员变量,如果没有都是【向上找】,绝对不会向下找子类的

重写(Override)

概念:在继承关系当中,方法的名称一样,参数列表也一样

重载(Overload):方法的名称一样,参数列表不一样

方法覆盖重写的注意事项:

1 必须保证父子类之间的方法名称相同,参数列表也相同

@Override:写在方法前面,用来检测是不是有效的正确覆盖描写

2  子类方法的返回值必须【小于等于】父类方法的返回值

Object类是所有类的公共最高父类

3  子类方法的权限必须【大于等于】父类方法的权限修饰符

public>protected>留空>private

继承关系中父子类构造方法的访问特点

1  子类构造方法中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造

2   子类构造可以通过super关键字来调用父类重载构造

3   super的父类构造调用,必须是子类构造方法的第一个语句

【总结】子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,而且必须是第一个

举报

相关推荐

0 条评论