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 ...
随机推荐
- (转)union和union all的区别
Union因为要进行重复值扫描,所以效率低.如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致): 如果我们需要将两个s ...
- Jquery:Jquery中的DOM操作<二>
由于昨天晚上回来的晚,写的有点匆忙,所以昨天的学习笔记中出现了多处错误的地方,幸好有各位园友帮忙指出,在这里谢过各位了!今天继续学习关于Jquery中DOM的操作,其实是昨天随笔的延续,求围观!!! ...
- UIButton和UIImageView的区别
1.显示图片 1> UIImageView只能一种图片(图片默认会填充整个UIImageView) image\setImage: 2> UIButton能显示2种图片 * 背景 (背景 ...
- cocos2dx Menu
---恢复内容开始--- cocos2dx 3.0以后 Menu相关回调函数使用不同.现在列出当前版本可使用的方法. 看见一个说的很仔细的博客,博客源地址 http://blog.sina.com.c ...
- SharpZipLib 压缩文档下载
using ICSharpCode.SharpZipLib.Zip; Response.Clear(); Response.ClearContent(); Response.ClearHeaders( ...
- HBase -ROOT-和.META.表结构(region定位原理)
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...
- C# winform 窗体弹出选择目录或文件 的对话框
//弹出一个选择目录的对话框 privatevoid btnSelectPath_Click(object sender, EventArgs e) //弹出一个选择目录的对话框 { FolderBr ...
- 让footer在底部(测试它人方法)
要求:网页布局中,页脚在底部.内容不够一页时,在底部.内容超过一页时,出现卷动条,页脚也在被挤到底部 1.测试的这个文章介绍的办法 链接: http://www.cnblogs.com/cheny ...
- Lambda表达式 之 C#
Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托 ...
- Jasper_mainReport_excel html pdf 主报表中常用属性
jasper中,excel , html, pdf 一般可以使用相同的主报表和子报表.需要在主报表中添加不同格式对应的属性.导出不同格式的报表,编译器会将相应的属性应用到对应的报表格式中. 常用属性如 ...