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.
javaSE_08Java中static、继承、重写的更多相关文章
- javaSE_08Java中static、继承、重写-思维导图
思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 : 2)右击在新标签中打开放大查看 (IE不支持,搜狗,360可以):
- 继承类中static数据值
class A{ static int num = 1; public static void Display(){ System.out.println( num ); } } class B ex ...
- Java子类对于父类中static方法的继承
今天看到了Java中子类继承父类的一个相关讨论,在网上综合了各家的观点,写下了一篇简短的总结. 问题如下,在父类中含有staic修饰的静态方法,那么子类在继承父类以后可不可以重写父类中的静态方法呢? ...
- 浅析 Java 中的继承和重写
浅析 Java 中的继承和重写 Java 中的构造方法不能被继承. Java 中 static 修饰的方法可以被继承,但不能被子类重写. Java 中 final 修饰方法不允许被子类重写,但是可以被 ...
- Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)
继承: 1.继承是对某一匹类的抽象,从而实现对现实世界更好的建模. 2.提高代码的复用性. 3.extends(扩展),子类是父类的扩展. 4.子类继承父类可以得到父类的全部属性和方法.(除了父类的构 ...
- Java 父类的static成员在子类中的继承情况
父类的static成员在子类中的继承状况是怎么样的呢? 昨天突然想到这个问题,刚才试验了一下,发现很容易解释,没什么值得探讨的. 首先在学习继承时,书本都没有强调static成员有什么特殊的地方. 然 ...
- java中的继承与oc中的继承的区别
为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...
- PHP面向对象中 static:: 与 self:: parent:: $this-> 的区别
很多好几年工作经验的PHP工程师,对PHP面向对象中 static:: .self::.parent::.$this-> 的定义和使用都不清晰,特做详细梳理: static:: 可以访问全局作 ...
- php中static 静态关键字
一直依赖对于php中static关键字比较模糊,只是在单例模式中用过几次.上网查了查,没有找到很全的介绍,自己总结一下. 根据使用位置分为两部分 1.函数体中的静态变量 2.类中的静态属性和方法 1 ...
随机推荐
- iOS获取设备型号和App版本号等信息(OC+Swift)
iOS获取设备型号和App版本号等信息(OC+Swift) 字数1687 阅读382 评论3 喜欢10 好久没有写过博客了,因为中间工作比较忙,然后有些个人事情所以耽误了.但是之前写的博客还一直有人来 ...
- Unity粒子系统
最近比较清闲,就重新看了一遍例子系统,感觉能把效果做的炫酷对于初学者来说并不是一件容易的事,但是回头想想,最重要的原因可能还是没有把Particle Systems组件研究透吧,温故而知新,一起复习一 ...
- Linux防火墙配置—访问外网WEB
一.实验目标 1.本次实验在"Linux基础网络搭建实验"的基础上,在外网虚拟机上搭建WEB服务,并分别配置外网和网关的防火墙规则,使内网能够访问WEB服务 2.Linux基础网络 ...
- nginx参数的详细说明
#开启进程数 <=CPU数 worker_processes 1; #错误日志保存位置 #error_log logs/error.log; #error_log logs/error.log ...
- 接口加密《二》: API权限设计总结
来源:http://meiyitianabc.blog.163.com/blog/static/105022127201310562811897/ API权限设计总结: 最近在做API的权限设计这一块 ...
- iOS开发 - Swift实现检测网络连接状态及网络类型
一.前言 在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要.本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络.Wifi). 二.如何实现 Reachabili ...
- java基础---->hashMap的简单分析(一)
HashMap是一种十分常用的数据结构对象,可以保存键值对.它在项目中用的比较多,今天我们就来学习一下关于它的知识. HashMap的简单使用 一.hashMap的put和get方法 Map<S ...
- 通过分析 JDK 源代码研究 TreeMap 红黑树算法实
TreeMap和TreeSet是Java Collection Framework的两个重要成员,其中TreeMap是Map接口的常用实现类,而TreeSet是Set接口的常用实现类.虽然HashMa ...
- TCP流量控制和拥塞控制
TCP的流量控制 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受.利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制.TCP的窗口单位是字节,不是报文段,发送 ...
- Js之on与addEventListener的使用与两者的不同
Js之on和addEventListener的使用与不同 一.首先介绍两者的用法: 1.on的用法:以onclick为例 第一种: obj.onclick = function(){ //do som ...