java课后作业3
1、动手动脑
由于类中定义了需要参数的构造方法,导致系统不再提供默认的构造方法。
2、java字段初始化
运行结果
100
300
java字段在初始化时先按照对应的构造方法执行。若构造方法中没有对变量进行初始化,对于变量定义时初始化和初始化块,排在后面的会覆盖在前面的。
3、动手动脑
静态初始化块的执行顺序
源码
{
public static void main(String[] args)
{
new Leaf();
}
class Root
{
static{
System.out.println("Root的静态初始化块");
}
{
System.out.println("Root的普通初始化块");
}
public Root()
{
System.out.println("Root的无参数的构造器");
}
}
class Mid extends Root
{
static{
System.out.println("Mid的静态初始化块");
}
{
System.out.println("Mid的普通初始化块");
}
public Mid()
{
System.out.println("Mid的无参数的构造器");
}
public Mid(String msg)
{
//通过this调用同一类中重载的构造器
this();
System.out.println("Mid的带参数构造器,其参数值:" + msg);
}
}
class Leaf extends Mid
{
static{
System.out.println("Leaf的静态初始化块");
}
{
System.out.println("Leaf的普通初始化块");
}
public Leaf()
{
//通过super调用父类中有一个字符串参数的构造器
super("Java初始化顺序演示");
System.out.println("执行Leaf的构造器");
}
Leaf的静态初始化块
Mid的普通初始化块
Mid的无参数的构造器
Mid的带参数构造器,其参数值:Java初始化顺序演示
Leaf的普通初始化块
执行Leaf的构造器
规律
(1)静态初始化块只执行一次(2)创建子类型的对象时,也会导致父类型的静态初始化块的执行
4、
直接在静态方法中初始化含有实例对象的类会报错
public class statics {
int x=1;
static int y=2;
public static void method()
{
int a=new statics();
System.out.println();
}
}
采用如下方法进行调用
public class statics {
int x=1;
static int y=2;
public static void main(String[] args)
{
System.out.println(new statics().x);
System.out.println();
}
}
java课后作业3的更多相关文章
- java课后作业
课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...
- java课后作业总结
今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ...
- java课后作业-5
作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...
- java课后作业-4
一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private ...
- java课后作业7
9.页实验 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 答: d=m;和d=c;引起编译错误: 原因: ...
- java课后作业6
一.运行TestInherits.java 结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不 ...
- java课后作业5
[问题]随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.申请一个长度为10的数组 2.计算机随机生成10个数,并赋给数组 3. ...
- JAVA课后作业01
一.关于枚举的问题 public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t ...
- 10.18号java课后作业代码
import java.util.*; public class T { public static int a=0; public T() { a++; System.out.println(&qu ...
- java 课后作业
杨辉三角 组合数 public class YH { public static void main(String agrs[]) { int a[5][5],i,j; for(i = 0;i < ...
随机推荐
- [Python自学] Flask框架 (1) (Flask介绍、配置、Session、路由、请求和响应、Jinjia2模板语言、视图装饰器)
oldboy:s9day114 参考博客:https://www.cnblogs.com/wupeiqi/articles/7552008.html 一.Flask简介 1.安装Flask pip i ...
- 【架构篇】ASP.NET Core 基于 Consul 动态配置热更新
背景 通常,.Net 应用程序中的配置存储在配置文件中,例如 App.config.Web.config 或 appsettings.json.从 ASP.Net Core 开始,出现了一个新的可扩展 ...
- Hadoop学习之路(8)Yarn资源调度系统详解
文章目录 1.Yarn介绍 2.Yarn架构 2.1 .ResourceManager 2.2 .ApplicationMaster 2.3 .NodeManager 2.4 .Container 2 ...
- java课后作业10.14
一.简单总结一下java中类的初始化的规律: 1.类的构造函数优先 2.初始化块儿和定义时候的赋值,这俩个初始化方法优先级是一样的,在程序中谁最后执行,那么程序就采用谁的初始化值. 二.在java中想 ...
- 硬核干货 | C++后台开发学习路线
2020秋招提前批 C/C++相关开发 拿到腾讯.华为等offer 学习路线及时间安排 推荐时间为4个月,包括四部分:语言,计算机基础知识,项目基础知识,项目实践. 语言 推荐学习1个月 学习方针:视 ...
- Pikachu-RCE(远程命令/代码执行漏洞)
RCE(remote command/code execute)概述 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 远程系统命令执行一般出现这种漏洞,是因为 ...
- 887. 求组合数 III(模板 卢卡斯定理)
a,b都非常大,但是p较小 前边两种方法都会超时的 N^2 和NlongN 可以用卢卡斯定理 P*longN*longP 定义: 代码: import java.util.Scanner ...
- 在eclipse更新启动项目
说明:figfree是基于模块化开发,代码重用,可拆解性高. 功能模块分为:接口工程(*.Iface).接口实现工程(*.Impl).客户端工程(*.Client) 接口工程(*.Iface):对其他 ...
- node-sass pip 安装报错,提示缺少python2
解决办法参考https://segmentfault.com/a/1190000010984731?utm_source=tag-newest npm uninstall node-sass npm ...
- sqli-labs less-13 --> less-14
Less-13(报错盲注) 1.判断是否存在注入点 输入admin’时,出现如下报错信息,经过分析,存在注入点,且注入方式为:(‘’) 执行uname=admin')#&passwd=& ...