9、包、访问控制、import、static、static代码块、final、抽象类、接口、instanceof、多态
1、包
三级命名:公司的尾缀(com).公司名字(baidu).业务(Sale)
java.lang:默认包:String、Math,Object,System
java.util:工具包
java.io:输入输出包
java.net:网络开发包
java.awt:图形界面开发包
java.swing:也是图形界面开发包
2、访问控制
private:私有的:只能在自己的类中使用
default: 默认的:同包中可以使用。当子类继承父类,实例化子类后,跨包不可以使用。
protected:保护的:同包中可以使用,不同包时,子类继承父类,实例化子类后,挎包可以使用。
public:公有的:可以在任何包类中使用
3、静态关键字static
static关键字用来修饰变量、方法、内部类称这些变量、方法和内部类为静态变量、静态方法、静态内部类,放在静态内存区;
使用动态的时候,这些变量方法在对象实例化后,随时用随时创建,用完消失,所以为动态的。
静态的随类产生,随类消亡,会占内存,对象不调用的时候也不消失。
构造器不能使用static修饰,因为构造器参与new实例化动态创建,所以动静矛盾。
什么时候用静态:当实例化好多对象时候,确认其中一个属性和方法其值不会改变(方法就是参数返回值一致),就可以将其定义为静态的
用static声明的成员变量都将在静态内存区存储,不受实例化影响,随类而生随类而死,可以使用类.的形式调用。如果通过对象调用,其底层其实也是依据类.的形式调用;static的属性能够存储值,你不改变它,它就不变。
4、静态初始化块
public class C extends C0{
private static int age;
static{
System.out.println(1);
}
{
System.out.println(2);
}
C(){
System.out.println(3);
}
public static void main(String[] args) {
System.out.println(new C());
}
}
class C0{
static {
System.out.println(4);
}
{
System.out.println(5);
}
C0(){
System.out.println(6);
}
}
输出4 1 5 6 2 3
父类中静态代码块>子类中静态代码块>父类动态代码块>父类构造器>子类静态代码块>子类构造器>子类方法
5、final关键字
final——用于类、方法、变量前
final类不能被继承:常用的fanal太监类:String、Math;
final方法不能被重写覆盖;
final属性不能被更改。
常量声明:public static final double PI(常量用大写)= 3.1415926;
6、abstact抽象:
implements:实现 宿主
A、有抽象方法的成员类一定是抽象类
B、子类继承了抽象类,该子类要么实现抽象方法,要么自己本身是抽象类。
C、抽象类不能实例化。
7、interface接口
java中为单根继承,灵活度不够。而类和接口可以多实现,接口之间可以多继承,接口不可以继承类!
接口中默认为public,而不是default


类可以先继承父类,再实现接口
八、多态(polymorphism)——前提是继承
java的引用变量有两个类型:一个是编译时的类型,一个是运行时的类型
编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定,如果编译时类型和运行时类型不一致就出现多态。
方法和变量的使用:子类重写父类的方法或同名的属性,按照子类走;子类没有的方法属性按父类走;子类新创建的属性和方法,无法使用;非要使用就是用强转(A是儿子,A0是父亲,plan()是新方法,((A)a1).plan())。
用法:
1、虚方法:用引用变量类型对象的栈来限制该对象可以调用的方法;
2、形参多态:在形参位置只写父类类型加变量,在调用时,在形参列表中实例化子类对象即可。
3、返回值多态:可用来实例化对象,根据子类的对象类型,来通过父类类型,创建子类对象
九、instanceof运算符
可以使用该运算符得到对象的类型。
判断一个对象时候是一个类的实现对象。
判断一个对象时候实现了一个接口。
a instanceof A;
9、包、访问控制、import、static、static代码块、final、抽象类、接口、instanceof、多态的更多相关文章
- 5、static、final、匿名对象、内部类、包、修饰符、代码块
final关键字 final关键字概念 * A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写. ...
- Java之static静态代码块
Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...
- java 中的静态(static)代码块
类字面常量 final 静态域不会触发类的初始化操作 非 final static 静态域(以及构造器其实是一种隐式的静态方法) Class.forName():会自动的初始化: 使用 .class来 ...
- static{}静态代码块与{}普通代码块之间的区别
先看一个例子: //class A package com.my.test; class A { static { System.out.println("A1:父类静态代码区域" ...
- Java static 静态代码块、代码块
简述 static{} 静态代码块,加载类之前执行 {} 代码块,每次new的时候都会被执行 示例 类: public class Student { int age; String name; bo ...
- Java-静态关键字Static&静态代码块
静态成员变量:(static修饰变量) 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类.多个对象共享同一份数据. 静态方法:(static修饰方法) 一旦使用 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- [Day13]static、final、匿名对象、内部类、包、修饰符、代码块
1.final-最终 (1)final的特点 final修饰类不可以被继承,但是可以继承其他类 final修饰的方法不可以被覆盖,但父类中没有final修饰方法,子类覆盖后可以加final final ...
- 13_Java面向对象_第13天(static、final、匿名对象、内部类、包、修饰符、代码块)_讲义
今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 01final关键字概念 A: 概述 继承的出现提高了代码的复 ...
- Java面向对象(static、final、匿名对象、内部类、包、修饰符、代码块)
面向对象 今日内容介绍 u final u static u 匿名对象 u 内部类 u 包的声明与访问 u 四种访问修饰符 u 代码块 第1章 final关键字 1.1 final的概念 继承的出现提 ...
随机推荐
- Python3的URL编码解码
前言 博主最近在用python3练习一些爬虫脚本的时候,发现一些url的编码问题,在浏览器提交请求api时,如果url中包含汉子,就会被自动编码掉.呈现的结果是 ==> %xx%xx%xx.如果 ...
- 利用GitHub搭建Hexo博客并开启HTTPS
Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. GitHub 是一个面向开源及私有软件项目的托管平台 ...
- BlogEngine.NET架构学习:Extension扩展实现
之前有个系列文章介绍过BlogEngine.NET,其中也有关于插件的介绍:"BlogEngine.Net架构与源代码分析系列part9:开发扩展(上)--Extension与管理上的实现& ...
- ubuntu设置PATH
试了好多遍,多无效.. 最后在/etc/enviroment下设置才有效. 不过让有一些未解问题 我使用sudo su 进入到root用户权限,设置完成的. 重新使用sudo -s进入root用户权限 ...
- PatentTips - Cross-domain data transfer using deferred page remapping
BACKGROUND OF THE INVENTION The present invention relates to data transfer across domains, and more ...
- ASP.NET-Session cooike
Application .Cookie和 Session 两种会话有什么不同 答:Application是用来存取整个网站全局的信息,而Session是用来存取与具体某个访问者关联的信息, Sessi ...
- 洛谷 P2652 同花顺
P2652 同花顺 题目背景 所谓同花顺,就是指一些扑克牌,它们花色相同,并且数字连续. 题目描述 现在我手里有n张扑克牌,但它们可能并不能凑成同花顺.我现在想知道,最少更换其中的多少张牌,我能让这 ...
- 查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程
当看到I/O等待时间所占CPU时间的比重非常高的时候,首先要检查的就是机器是否正在大量使用交换空间,由于硬盘操作的速度远远低于RAM.所以当系统内存耗尽,開始使用交换空间的时候.系统的性能会受到严重影 ...
- 实践补充 Installing Tomcat 7.0.x on OS X
我的 Mac 下是1.6的 SDK,下载 Tomcat 8.0 执行后,訪问 http://127.0.0.1:8080 并无反应,并且关闭脚本会报错 : Unsupported major.mino ...
- Android View 事件分发机制 源代码解析 (上)
一直想写事件分发机制的文章,无论咋样,也得自己研究下事件分发的源代码.写出心得~ 首先我们先写个简单的样例来測试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个M ...