Java课程作业之动手动脑(三)
1.以下代码为何无法通过编译?哪儿出错了?

在Foo类中已经有了一个Foo的含参构造方法,所以在定义Foo类对象时不能使用new Foo()方法。在Foo类中再写一个无参构造方法,就能编译了。
如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。
2.使用上页幻灯片中定义的类,以下代码输出结果是什么?自行总结Java字段初始化的规律。


输出结果:

规律:
类的初始化块,可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员。类的这种“没有名字”的“成员”,多用于初始化类的字段。
public int field=100; 在定义时进行初始化,此时field = 100;System.out.println(obj.field); 输出field的值100。
obj=new InitializeBlockClass(300);System.out.println(obj.field);利用构造方法进行初始化,field的值初始化为300,输出300。
3.请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。
输出结果:

总结:所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是:父类的静态初始化块>子类的静态初始化块>父类的初始化块>父类的构造函数>子类的初始化块>子类的构造函数.
4.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?
public class Example {
int a = 1;//类的实例变量,初始化值为1
static int b = 2;//类的静态变量,初始化值为2
public static void method()//静态方法
{
System.out.println("实例变量a = " + new Example().a);//在静态方法中访问类的实例变量需首先进行类的实例化
System.out.println("静态变量b = " + b);//在静态方法中可直接访问类的静态变量
}
public static void main(String[] args)
{
Example.method();
Example ex = new Example();
System.out.println("a = " + ex.a);
}
}
结果截图:

Java课程作业之动手动脑(三)的更多相关文章
- Java课程作业之动手动脑(六)
1.使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件. import java.io.IOException; import java.nio.file ...
- Java课程作业之动手动脑(五)
1.请阅读并运行AboutException.java示例. import javax.swing.*; class AboutException { public static void main( ...
- Java课程作业之动手动脑(四)
1.继承条件下的构造方法调用 class Grandparent { public Grandparent() { System.out.println("GrandParent Creat ...
- Java课程作业之动手动脑(二)
纯随机数发生器 编写一个方法,使用以下算法生成指定数目(比如1000个)的随机整数. import java.util.Scanner; public class test { public stat ...
- java课堂作业3 动手动脑
第一题 测试一下代码查看输出结果 public class InitializeBlockDemo { /** * @param args */ public static void main(Str ...
- JAVA方法03之动手动脑问题解决
动手动脑1.当JAVA里定义的函数中去掉static后,怎么办?(如下程序,将square()函数的static去掉) public class SquareIntTest { public stat ...
- Java类和对象动手动脑
动手动脑1 以下代码为何无法通过编译?哪儿出错了?
- Java文件与类动手动脑
动手动脑1: 使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件. package classJava; import java.io.IOExcepti ...
- Java第一节课动手动脑
在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...
随机推荐
- oracle常用小知识点
alter table us_studies modify enroldate default to_char(sysdate,'yyyy-mm-dd'); ALTER TABLE QS_QUEUE ...
- 删除右键菜单中的Git
在打开的注册表中找到:HKEY_CLASSES_ROOT,并点HKEY_CLASSES_ROOT前面的小三角:找到Directory,点击前面的小三角:找到Background,点击前面的小三角:打开 ...
- 校验台湾身份证号码的js脚本
网上搜了一下,居然没有,只好自己写一个. //台湾地区身份证校验 function IsTWIdcard(idcard){ if(/^[A-Z][1-2]\d{8}$/.test(idcard)) { ...
- 【SpringBoot】支持Java1.6
开发环境 Java 1.6; 需要修改的配置 指定java和tomcat版本 <!-- TO Support JDK 1.6 start --> <java.version>1 ...
- NGUI的字体加粗效果
ngui的UILabel可以通过属性面板(inspector)设置字体的样式:加粗 倾斜 正常等. 但是如果通过这里设置了加粗,与实际的加粗不一样,ngui有一个拉伸宽度的变化. 这让人觉得很丑 .如 ...
- 《Java并发编程实战》笔记-非阻塞算法
如果在某种算法中,一个线程的失败或挂起不会导致其他线程也失败和挂起,那么这种算法就被称为非阻塞算法.如果在算法的每个步骤中都存在某个线程能够执行下去,那么这种算法也被称为无锁(Lock-Free)算法 ...
- hadoop长时间运行后,stop-all.sh报错
报错现象: hadoop在stop-all.sh的时候依据的是datanode上的mapred和dfs进程号. 而默认的进程号保存在/tmp下,linux默认会每 隔一段时间(一般是一个月或者7天左右 ...
- document.write的用处!
document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中写入字符串,一旦文档流已经关闭,那d ...
- 描述wxWidgets中事件处理的类型转化
wxWidgets是一个比较常用的UI界面库,我曾经试着使用wxWidgets写一个UI编辑工具,在此期间,学习了一些wxWidgets的知识.我对wxWidgets的绑定(Bind)比较好奇,想知道 ...
- Oracle 小技巧
Oracle小技巧 ###add at 18-10-11 1 ed 在sqlplus当中 如果前一条语句输入有误的话 可以输入ed再回车.在进行编辑 输入ed后有弹窗,可以对之前的输入语句进行编辑 ...