一、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.

javaSE_08Java中static、继承、重写的更多相关文章

  1. javaSE_08Java中static、继承、重写-思维导图

    思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 : 2)右击在新标签中打开放大查看 (IE不支持,搜狗,360可以):

  2. 继承类中static数据值

    class A{ static int num = 1; public static void Display(){ System.out.println( num ); } } class B ex ...

  3. Java子类对于父类中static方法的继承

    今天看到了Java中子类继承父类的一个相关讨论,在网上综合了各家的观点,写下了一篇简短的总结. 问题如下,在父类中含有staic修饰的静态方法,那么子类在继承父类以后可不可以重写父类中的静态方法呢? ...

  4. 浅析 Java 中的继承和重写

    浅析 Java 中的继承和重写 Java 中的构造方法不能被继承. Java 中 static 修饰的方法可以被继承,但不能被子类重写. Java 中 final 修饰方法不允许被子类重写,但是可以被 ...

  5. Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)

    继承: 1.继承是对某一匹类的抽象,从而实现对现实世界更好的建模. 2.提高代码的复用性. 3.extends(扩展),子类是父类的扩展. 4.子类继承父类可以得到父类的全部属性和方法.(除了父类的构 ...

  6. Java 父类的static成员在子类中的继承情况

    父类的static成员在子类中的继承状况是怎么样的呢? 昨天突然想到这个问题,刚才试验了一下,发现很容易解释,没什么值得探讨的. 首先在学习继承时,书本都没有强调static成员有什么特殊的地方. 然 ...

  7. java中的继承与oc中的继承的区别

    为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...

  8. PHP面向对象中 static:: 与 self:: parent:: $this-> 的区别

    很多好几年工作经验的PHP工程师,对PHP面向对象中 static:: .self::.parent::.$this->  的定义和使用都不清晰,特做详细梳理: static:: 可以访问全局作 ...

  9. php中static 静态关键字

    一直依赖对于php中static关键字比较模糊,只是在单例模式中用过几次.上网查了查,没有找到很全的介绍,自己总结一下. 根据使用位置分为两部分 1.函数体中的静态变量 2.类中的静态属性和方法 1 ...

随机推荐

  1. jQuery使用小结

    $(document).ready( function(){} ); 选择器 $("p:first")            第一个元素 $("p.intro" ...

  2. swfupload多图上传插件(ASP.NET)

    <script src="../js/swfupload/swfupload.js" type="text/javascript"></scr ...

  3. 现有‘abcdefghijkl’12个字符,将其所有的排列按字典序进行排序,给出任意一组排列,说出这租排列在所有排列中是第几小的

    题目: 现有‘abcdefghijkl’12个字符,将其所有的排列按字典序进行排序,给出任意一组排列,说出这租排列在所有排列中是第几小的 据说这道题是百度校招的一道算法题,反正我觉得我在学校的时候很可 ...

  4. pygame开发滑雪者游戏

    pygame开发滑雪者游戏 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 1. 环境登录 无需密码自动登录,系统用户名 shiyanlou,该用户具备 s ...

  5. 将 Eclipse 的配色改为黑底白字

    1.先到 eclipsecolorthemes下载一个主题. 2.Eclipse File-->Import 3.Import视窗内选择 General-->Preferences 4.选 ...

  6. Linux常用快捷按键

    Linux常用快捷按键 为了提高工作效率 1 一定用快捷键 这里简单的说下几个常用的快捷按键. Ctrl + l    清屏,相当于clear命令. Ctrl + z    挂起,程序放到后台,程序没 ...

  7. 思考题:用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?(提示:是否对所有的应用领域都适用?使用的方便性?.......)

    思考题: 用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?(提示:是否对所有的应用领域都适用?使用的方便性?.......) 简答: 一.用例解释: 在软件工程中,用例是一种在开 ...

  8. SQL SERVER大话存储结构(2)_非聚集索引如何查找到行记录

              如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有.望各位支持!      1 行记录如何存储     这里引入两个 ...

  9. [刷题]算法竞赛入门经典(第2版) 5-11/UVa12504 - Updating a Dictionary

    题意:对比新老字典的区别:内容多了.少了还是修改了. 代码:(Accepted,0.000s) //UVa12504 - Updating a Dictionary //#define _XieNao ...

  10. 【挖洞经验】如何在一条UPDATE查询中实现SQL注入

    直奔主题 跟往常一样,在喝完我最爱的果汁饮料之后,我会习惯性地登录我的Synack账号,然后选择一个应用来进行渗透测试,此时我的“黑客之夜”便正式开始了. 我与很多其他的安全研究人员的习惯一样,我会在 ...