网站开发命名规范,cpanel搭建wordpress,网页编辑器安卓,做网页的软件下载JavaSE#xff08;上#xff09;-Day9 集合static静态变量静态方法静态方法的注意事项重新认识main方法 继承继承注意事项子类到底能继承父类哪些内容继承中成员变量和成员方法的访问特点重写构造方法的访问特点this super 集合
因为数组是不可变的#xff0c;我们在… JavaSE上-Day9 集合static静态变量静态方法静态方法的注意事项重新认识main方法 继承继承注意事项子类到底能继承父类哪些内容继承中成员变量和成员方法的访问特点重写构造方法的访问特点this super 集合
因为数组是不可变的我们在不确定一个容器长度的时候应该选择一个长度可变的容器此时引出了ArrayListArrayList需要指定泛型泛型不可以是基本数据类型我们可以使用基本数据类型的包装类在创建ArrayList对象的时候JDK7之前两个泛型位置都需要填写泛型JDK7之后只需要填写前面位置的泛型但后面也需要ArrayList的容器默认的容量为0,可以自动扩容ArrayList有便捷的方法新增add(E)-boolean修改set(index,E) -oldE,删除remove(E)-boolean 或 remove(index)-E查询get(index)-E
static
静态变量
1.用static修饰的成员变量就是静态变量 2.静态变量创建是随着类的字节码文件加载到元空间后在堆内存中的静态区添加该静态变量进行存储先设置默认初始值然后显式赋值然后方法里赋值成员变量是随着对象的创建在堆内存中开辟空间存储 3.静态变量是属于类的可以被这个类所有的对象共享编辑或使用 4.一般通过类名.静态变量名调用 5.同一种对象共用的一个属性就可以定义成静态变量
静态方法
1.用static修饰的成员方法就是静态方法 2.静态方法用于Test类和工具类 3.JavaBean类指的是描述一类事物的类 4.Test类是用于测试其他类的类 5.工具类是帮我们做一些事情的类不描述一类事物 6.工具类要求见名知其义 7.私有化构造方法不可以定义工具类的对象因为工具类的对象是无意义的 8.方法定义成静态的方便调用 9.用类名.静态方法名(…)是从元空间中找到这个类的字节码文件找到对应的静态方法名进栈运行
静态方法的注意事项
静态方法中是没有this关键字的其实是因为成员方法中this作为第一个形参隐藏起来啦给的值就是调用者的地址而静态方法没有this静态方法不用成员变量和成员方法原因就是没有this关键字成员方法既可以调用成员方法又可以调用静态方法每个对象都可以调用类创建的静态区的静态变量
重新认识main方法
public给出足够大的访问权限便于JVM调用staticJVM不需要实例化直接调用voidJVM不提供返回值main为JVM查询的方法入口名称固定String[] args过去接收一些参数现在由Scanner代替
继承
为什么需要继承
当类与类之前有相同的属性和方法时并且这些类又是同一大类就可以使用继承可以把子类中共同的属性和方法提取到父类中提高代码的复用性子类 extends 父类可以让子类使用父类的属性和方法子类只需要补充编写特有的属性和方法extends关键字是让两个类建立继承关系满足语句子类是父类。
继承注意事项
Java是单继承只能继承一个直接父类支持多层继承可以有多个间接父类Java中所有的类都直接或间接的继承Object类子类只能访问父类中非私有的成员变量和成员方法代码层面
子类到底能继承父类哪些内容
子类不能继承父类的构造方法父类的构造方法拷贝过来不符合要求 public/private 类名子类可以继承父类的成员变量 虽然可以继承父类的私有成员变量但无法直接使用子类可以继承父类非private且非static且非final的成员方法它们属于虚方法会传给子类方便直接调用如果不是虚方法就需要先找子类再找父类周而复始没有则报错
继承中成员变量和成员方法的访问特点
就近原则 先局部找然后在本类找最后再父类中找逐级向上找不到报错可以用this,super改变找的起点
重写
当父类的方法不满足子类的需求可以重写该方法重写要求方法名和形参列表完全相同要求访问修饰符权限子类父类要求返回值范围子类 父类重写写Override注解方便进行重写格式的校验重写只可以重写虚方法重写本质就是覆盖虚方法
构造方法的访问特点
父类的构造方法不能被子类继承子类构造方法默认情况调用父类的无参构造方法super();为了给父类属性完成初始化父类的属性初始化完毕子类才可以调用super(); this();必须出现在构造方法的第一行两者互斥想要调用有参的父类构造方法需要显式的在子类构造方法的第一行调用。
this super
this指的是调用者的地址值可以理解一个形参变量super代表父类的存储空间