Java学习笔记08
1. static关键字
static可以用来修饰的成员变量和成员方法,被static修饰的成员是属于类的是放在静态区中,没有static修饰的成员变量和方法则是属于对象的。
1.1 静态变量
有static修饰的成员变量是属于类的,这种成员变量称为类变量或者静态成员变量。因为类只有一个,所以静态成员变量在内存区域中也只存在一份,所有这个类的对象都可以共享静态变量。
定义格式
修饰符 static 数据类型 变量名 = 初始值;
访问
类名.静态成员变量名
1.2 实例变量
无static修饰的成员变量是属于对象的,这种成员变量称为实例变量。
注意:实例变量属于对象,必须创建类的对象才可以访问。
访问
对象名.实例成员变量名
1.3 静态方法
有static修饰的成员方法是属于类的,这种成员方法称为类方法或者静态方法。因为类只有一个,所以静态方法在内存区域也只存在一份,所有这个类的对象都可以共享静态方法。
访问
类名.静态方法名()
1.4 实例方法
无static修饰的成员方法是属于对象的,这种成员方法称为实例方法。
注意:实例方法属于对象,必须创建类的对象才可以访问。
访问
对象名.实例方法名()
2. 继承
假如多个类种存在相同属性和行为时,我们可以将这些内容抽取到单独的一个类中,那么多个类就无需再定义这些相同的属性和行为,只要继承抽取出来的那个类即可。其中,多个类称为子类,被继承的类称为父类、超类或者基类。
2.1 继承的含义
继承就是子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性和行为。子类可以直接访问父类中非私有的属性和行为。
继承的好处
- 提高代码的复用性,减少代码冗余
- 使类与类之间产生了关系
2.2 继承的使用
通过extends关键字,可以声明一个子类继承父类
格式
class 父类 {
...
}
class 子类 extends 父类 {
...
}
注意:Java是单继承的,一个类只能继承一个直接父类。
子类不能继承的内容
- 子类不能继承父类的构造方法
注意:子类可以继承父类的私有成员(成员变量、成员方法),只是子类无法直接访问私有成员,可以通过get/set方法访问父类中的私有成员变量。
2.3 使用super访问父类成员
子父类中出现了同名的成员时,在子类中可以使用super关键字来访问父类中非私有的成员。
注意:
super代表的是父类对象的引用,this代表的是当前对象的引用。
格式
成员变量: super.成员变量名
成员方法: super.成员方法名()
2.4 方法重写
子类中出现与父类一样的方法(返回值类型、方法名和参数列表相同)时,会出现覆盖的效果,称为重写。
注意:
- 建议所有重写都加上@Override注解,一方面可以提高代码的可读性,一方面可以防止重写出错。
- 方法重写是发生在子父类之间的关系、
- 必须要保证权限大于等于父类权限
- 返回值类型、方法名和参数列表都要一致
2.5 继承后的构造方法
继承之后,子类的构造方法中默认有一个super(),表示调用父类的构造方法,父类成员变量初始化后才可以给子类使用。
2.6 super(...)和this(...)
super和this访问成员
this.成员变量名
super.成员变量名
this.成员方法名()
super.成员方法名()
super和this调用构造方法
super(...); // 调用父类的构造方法
this(...); // 调用本类的其他构造方法
子类构造方法的第一行都隐含了一个
super(),所以子类构造方法中可以省略super()。
2.7 继承的特点
- Java只支持单继承,不支持多继承
- 一个类可以有多个子类
- 可以多层继承
注意:Java中所有的类都默认继承Object类。
Java学习笔记08的更多相关文章
- JAVA自学笔记08
JAVA自学笔记08 1.构造方法私有,外界就不能再创建对象 2.说明书的制作过程 1)写一个工具类,在同一文件夹下,测试类需要用到工具类,系统将自动编译工具类:工具类的成员方法一般是静态的,因此在测 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
随机推荐
- java 线程池 带返回值
import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import ja ...
- Js:当前日期格式化与比较大小
//日期格式转换 getCurrentTime() { var date = new Date();//当前时间 var year = date.getFullYear() //返回指定日期的年份 v ...
- 在.NET中使用JWT
1.配置文件添加 //jwt配置文件 "JWT": { "SigningKey": "14fa5f2rrwsg627fs256fdgff2r5rf52 ...
- Nginx自带的变量
$args #请求中的参数值$query_string #同 $args$arg_NAME #GET请求中NAME的值$is_args #如果请求中有参数,值为"?",否则为空字符 ...
- LaTeX in 24 Hours - 3. Formatting Texts I
文章目录 本章内容:文本格式 I 3.1 Sectional Units 3.2 Labeling and Referring Numbered Items 3.3 Texts Alignment 3 ...
- pytorch之科学计算
一.简介 torch作为深度学习的主流框架,其根本在于1.具有强大的GPU加速的张量计算功能.2.包含自动求导系统的深度神经网络.自动求导功能由torch.Autograd模块实现,而科学计算部分则直 ...
- 学习记录--C++作业3
1.类是一个模板吗? 是:类模板是一个抽象的类,代表类的一般特性,可以用类模板来创建类,所有的类都有共有的特性. 4.函数模板的实例化是什么? 模板函数,即函数 3.关于cin和cout说法正确的: ...
- 一个关于 Linux环境下输出操作符 >和>>的问题
[>和>>的区别]命令>文件,表示以覆盖的方式,把命令正确输出到指定的文件或者设备当中:命令>>文件,表示以追加的方式,把命令正确输出到指定的文件或者设备当中. [ ...
- 基于Quartz.Net通过反射进行任务调度
通过反射加载任务调度 需求: 因为有些任务需要进行各种定时操作,因此将 Quartz.Net 简单封装了一下使用: 希望通过上传 dll 来进行每个任务的调度,所以写了个反射调度示例: Program ...
- Java所用相关软件的大致安装流程
JAVA下载流程 一.相关环境的安装与配置 1.JDK的下载 去官网搜索相应的java版本,并进行下载 官网链接:www.xfdown.com/soft/125774.html在该链接下,可以下载ja ...