• javaSE_08Java中static、继承、重写


    一、Static

    学习静态这个关键字,关键是抓住两个点:
    1,关注其语法特点
    2,关注其使用场景
    案例讲解:
    我们先从静态变量开始,当一个成员变量加上static修饰之后,会是一个什么效果?
    比如创建一个老师类(姓名,工资,学校),然后我们把学校设置为静态变量,来对比跟其他变量的差别
    静态的使用:

    静态变量

    静态变量所有对象共享一份,非静态的成员变量,每个对象独享一份
    静态变量和普通成员变量的区别(局部变量和成员变量的区别)

    归属不同

    成员变量:对象
    静态变量:类

    调用的方式不同

    成员变量:对象.成员变量
    静态变量:类名.静态变量

    内存出现的时机不同

    成员变量:对象创建
    静态变量:load 类的字节码文件,优先于成员变量

    内存的位置不同

    成员变量:堆
    静态变量:方法区-静态区

    静态代码块

    执行时机:当我们的类被加载的时候就会被执行,不管是否创建对象
    执行次数:整个过程仅执行一次,不管创建多少对象都只执行一次

    静态方法

    可以通过对象或者类名来调用,但是建议用类名来调用
    静态:
    * 1,静态变量,所有对象共享一份,访问方式:类名.变量名
    * 2,静态代码块,类加载的时候就自动执行,而且只执行一次
    * 3,静态方法,访问方式:类名.方法名()

    实际应用场景:

    假设现在项目中有多处地方需要做状态判断,以作为下一步操作的依据,这种情况,我们先来写代码,然后再引出问题
    创建工具类
    (1),解决数据匹配问题
    (2),直接通过类名调用方法,无需创建对象

    二、继承

    1.继承-语法

    继承解决了什么样的问题?
    Java里面实现继承的语法是怎么样的?

    案例分析:
    开发一个学员管理系统,这里面会涉及到老师和学生的角色,我们来看看这里面会出现什么问题?

    2个小目标:
    1,掌握继承的基本使用
    2,掌握继承的语法细节(笔试题)

    总结继承中,构造方法的注意事项(Super关键字的使用)

    this()//调用自身的构造方法
    super()//调用父类的构造方法
    this.someMethod()//父类继承过来的方法+自身的方法
    super.someMethod()//父类继承过来的方法

    Java不支持多继承,但支持多重继承,何为多重继承?

    多继承:不能一个类继承多个类
    比如:public class Student extends SysUser,Other

    多重继承:爷爷—爸爸—-孙子

    问题:
    1,继承,构造方法会不会被继承?不会
    2,说说this和super的区别?

    2.继承-方法的重写

    为什么会有方法重写?
    学生和老师都有自己各自独特的特性,这个时候父类的展示信息方法不能满足子类的需求

    练习:
    学生类和老师类分别重写其父类的showInfo方法

    方法重写要注意的规则
    @Override注解的作用

    经典面试题:
    重写和重载的区别?Override vs overload

    重写:
    重写,出现在父类和子类之间
    重写的方法方法名,参数,返回值类型都要一样,访问权限只能大于或等于父类的访问权限,一般我们都是设置一样的

    重载:
    重载,出现在同一个类里面,方法名要一样,参数列表不同
    System.out.println(1);
    System.out.println(1.1);
    System.out.println(“hello”);

    3.继承-不得不说的Object

    从Object的两个方法来说重写,一个是toString(),一个是equals()

    案例一:
    String s = “haha”;
    System.out.println(s);
    Student stu = new Student(“zhangsan”);
    System.out.println(stu);

    案例二:equals

    经典面试题:
    ==和equals的区别

    三、Final

    首先,掌握final关键字的特性,最终的

    (1),修饰类:类将不能被继承
    (2),修饰属性:把变量变成常量,存储着一堆常量的类,我们就称为常量类
    (3),修饰方法:控制方法不能被覆盖

    其次,掌握在其实际开发中的应用
    完善制作工具类

    final修饰的类不允许有子类
    final修饰的变量只能赋值一次,—》常量
    final修饰的方法,那么这个方法将不允许重写–改变

    四、包

    基本作用

    最基本的作用:避免类重名的问题

    项目开发中的作用:

    更好来管理我们的类和文件,同时更好让多人协助开发

    延伸问题:
    包名本身如何确保唯一性
    域名 www.baidu.com
    域名倒过来:com.baidu.部门名称.项目名称.子系统.子模块
    com.baidu.

  • 相关阅读:
    Stage划分原理
    Spark转换和动作算子
    Spark运行原理
    Scrapy数据持久化
    在实际工作中Eclipse常用的快捷键
    关于Linux(CentOS6.5)中文输入法、中文桌面可视化等问题
    Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerExceptio错原因及解析
    在Eclipse中复制导入项目并且修改原来的项目名字,项目后面的括号显示原来项目的名字!
    response.sendRedirect()与request.getRequestDispatcher("/index.jsp").forward(request, response)两者辨析
    MyEclipse/Eclipse导出jar方法
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6770145.html
Copyright © 2020-2023  润新知