java 对象初始化和代码块初始化顺序
class A
{
public A(){
System.out.println("测试!!!!!!!!!!!");
}
} class Demo19 extends A
{ {
x=7;//代码块初始化
System.out.println("hello world!测试代码块的执行顺序!AAAAAAAAAAA");
}
public int x=1;//这里不会初始化变量值 只会声明变量
public int y=2;//这里不会初始化变量值 只会声明变量 public Demo19(){
//super();
//相当于 x=7
//然后x=1;
//y=2;
//y=13;
}
public Demo19(int d_x,int d_y)
{ //super();
//x=7;
//x=1;
//y=2;
//y=13;
x=d_x;
y=d_y;
//super();//假如显示的调用 那么是不能放在这里初始化的
}
//代码块的执行顺序是按照代码块的顺序执行的
//代码块的执行时间:在对象初始化的时候执行!!!!!!!!!!!!!
{
y=13;//代码块初始化
System.out.println("hello world!测试代码块执行的顺序!BBBBBBBBBBBB");
} //构造函数的代码块 public static void main(String[] args)
{
//这里初始化的时候就跟上面的初始化差不多
Demo19 demo=new Demo19();
System.out.println("测试代码块:x="+demo.x+" ,y="+demo.y); //这里的初始化相当于上面的那个操作
Demo19 demoOne=new Demo19(12,45);
System.out.println("测试代码块:x="+demoOne.x+" ,y="+demoOne.y); System.out.println("其他的顺序是不变的!这个是比较重要的"); System.out.println("代码块的使用!"); }
}
抽象类的初始化:
abstract class A
{
String name;
String id; public abstract void test();
} abstract class B extends A
{
//子类也可以是抽象类,不实现父类的方法
} class C extends A
{
public void test(){
System.out.println("子类假如不是抽象类 那么必须实现父类的方法");
}
}
abstract class D1
{
/* 抽象类中也是有构造函数的,只是这个只能子类初始化 */ D1(){
System.out.println("测试抽象类的构造函数!");
}
static String name="什么是你";
}
class D extends D1
{
D(){
System.out.println("子类调用父类的构造函数");
}
public void test(){
System.out.println(this.name); System.out.println("假如抽象类中没有抽象方法,那么继承也是没有问题的");
}
}
class Demo5
{
public static void main(String[] args)
{
D d =new D();
d.test();
System.out.println("抽象类!!!!!");
System.out.println("类不支持多重继承!!!!!!!!!!!!!!!!");
} }
java 对象初始化和代码块初始化顺序的更多相关文章
- java 子类的实例化和代码块初始化过程
1,子类的实例化 1,子父类中的构造函数的特点. 在子类构造对象时,发现,访问子类构造函数时,父类也运行了. 为什么呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super(); 子类 ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- Java基础6:代码块与代码加载顺序
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- java代码块执行顺序
父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...
- java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序
java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时 ...
- Java面试题 静态代码块 构造代码块 构造方法 的执行顺序
JAVA中的静态代码块 构造代码块 构造方法执行顺序: 静态代码块(类加载时执行)>>构造代码块>>构造方法 下面展示一个简单的例子,推荐大家动手运行一遍: public cl ...
- Java中的构造代码块
代码块 ----a静态代码块 ----b构造代码块 ----c普通代码块 执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. a.静态代码块: 静态代码块 ...
- java中的静态代码块、构造代码块、构造方法
运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...
- Java之static静态代码块
Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...
随机推荐
- asp.net 正则表达式
在平时的开发中常常用到替换法: 普通的字符串替换可以使用string.replace(string,string),但是比较难解决HTML文本的替换. 经我几番查找,终也找出解决办法:正则匹配替换. ...
- 客户Oracle数据库在插入数据的时候报超出最大长度的错误(规避风险)
背景: 项目使用oracle数据,在开发环境测试一些正常.项目部署到客户的服务器上后,系统在添加数据的时候报错.输出错误信息,发现是“超出最大长度”的异常. 但是按照数据库的设计,添加的数据应该在允许 ...
- vs UNICODE 零散的笔记
string--->CString #ifdef UNICODE#define Tstring wstring#else#define Tstring string#endif 可以这样转换CS ...
- [译]终极塔防——运用HTML5从头创建一个塔防游戏
翻译共享一篇CodeProject的高星力作,原文地址:http://www.codeproject.com/Articles/737238/Ultimate-Tower-Defense 下载演示项目 ...
- javascript数组方法鉴赏一
创建数组 如果你习惯了用 new 来实例化对象的形式,那么在js中一定会疑惑,可选的参数数量代表的意义截然不同. new Array(size);//传一个参数的时候分两种情况,size是正整数时代表 ...
- 关闭并且禁用ECSHOP缓存
ECSHOP的缓存机制从一定程度上可以减少ECSHOP反复读取数据库的几率,从而一定程度上降低服务器负担,提高访问速度.但是启用缓存机制,对一些新手站长也有不利的地方.我就遇到很多新手站长经常问,我明 ...
- [转载]移动终端浏览器初始设置apple-mobile-web-app-capable
这两句话的确很有用,有了它,手机访问的时候像样了. 原文地址:移动终端浏览器初始设置apple-mobile-web-app-capable作者:素水凌心 移动终端浏览器默认设置视口的宽度和初始规模. ...
- 列表:一个打了激素的数组 - 零基础入门学习Python010
列表:一个打了激素的数组 让编程改变世界 Change the world by program 列表:一个打了激素的数组 有时候我们需要把一堆东西暂时存储起来,因为他们有某种直接或者间接的联系,我们 ...
- BasicExcel说明文档
BasicExcel说明文档 BasicExcel原始链接:http://www.codeproject.com/Articles/13852/BasicExcel-A-Class-to-Read-a ...
- block(三)揭开神秘面纱(上)
block到底是什么 我们使用clang的rewrite-objc命令来获取转码后的代码. 1.block的底层实现 我们来看看最简单的一个block: [caption id="attac ...