Java一些动手动脑实验

时间:2021-11-09 09:06:54

一、Java字段初始化的规律:

Java一些动手动脑实验

Java一些动手动脑实验

输出结果为:100 和 300

当把{filed=200}放在public int field=100之后输出结果为:200 和 300

所以执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

二、当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。请自行编写示例代码验证以上结论。

代码:

Java一些动手动脑实验

Java一些动手动脑实验

结果:

Java一些动手动脑实验

三、请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。

代码:

Java一些动手动脑实验

Java一些动手动脑实验

结果:

Java一些动手动脑实验

所以,先执行static“静态初始化块”,并且静态初始化块只执行一次。创建子类型的对象时,也会导致父类型的静态初始化块的执行。

四、静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?请编写代码验证你的想法。

  静态方法不能直接访问同一类中的非静态成员,所以必须先创建对象,再通过对象访问成员,即将实例成员值赋给静态成员,静态方法通过访问静态成员来访问实例成员。

代码如下:

package yanzheng;

public class Er

{

int i =123;

static int Temp;

public static void A()

{

System.out.println(Temp);

}

public int B()

{

int x = 100;

return x;

}

public static void main(String args[])

{

Er e = new Er();

Temp = e.B();

e.A();

}

}

五、使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

代码:

Java一些动手动脑实验

结果:

Java一些动手动脑实验

Java一些动手动脑实验的更多相关文章

  1. JAVA课堂动手动脑实验--方法的重载定义,组合数的递归算法

    1. 请看以下代码,你发现了有什么特殊之处吗? 答:此程序中的两个方法虽然方法名一样,但是参数的数据类型不同: 这是方法的重载,方法的重载需要满足的条件: 1)方法名相同: 2)参数类型不同,参数个数 ...

  2. java课堂动手动脑及课后实验总结

      动手动脑一:枚举   输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...

  3. Java的动手动脑

    动手动脑及课后实 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ...

  4. Java之动手动脑(三)

    日期:2018.10.12 星期五 博客期:017 这次留了两个动手动脑作业!我需要一个一个来说!先说第一个吧! Part 1 :随机生成1000个随机数 代码: //以下为 RandomMaker. ...

  5. java的动手动脑10月20日

    (1)动手动脑 该函数没有赋初值再就是如果类提供一个自定义的构造方法,将导致系统不在提供默认的构造方法. (2) public class test { /*** @param args*/publi ...

  6. java异常处理动手动脑问题解决和课后总结

    动手动脑 一.问题:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 1.源代码 import javax.swing.*; cl ...

  7. java课java方法动手动脑

    动手动脑: import java.util.Scanner; public class Random { public static void main(String[] args) {       ...

  8. Java的动手动脑(七)

    日期:2018.11.18 博客期:025 星期日 Part 1:使用 Files.walkFileTree()来找出指定文件夹下大小大于1KB的文件 package temp; import jav ...

  9. Java的动手动脑(六)

    日期:2018.11.8 星期四 博客期:022 --------------------------------------------------------------------------- ...

随机推荐

  1. 交换技术(swaping) 视频11

    进程挂起的原因 1)进程全部阻塞,处理机空闲 2)系统负荷过重,内存空间紧张 3)操作系统需要,操作系统可能挂起后台进程或者一些服务进程(后台进程 优先级比 前天进程低),或者可能导致系统故障的进程 ...

  2. python基础set

    1.set set是一个无序的不重复的集合 li=[11,22,33,11] s=set(li) print(s) {11,22,33}  set提供的方法 1.add(self, *args, ** ...

  3. 完美完全卸载Oracle 11g数据库

    Oracle 11g可在开始菜单中卸载,然后同时需要删除注册表中相关内容. 操作系统:windows10专业版. 卸载步骤: 1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的 ...

  4. [翻译][MVC 5 + EF 6] 8:更新相关数据

    原文:Updating Related Data with the Entity Framework in an ASP.NET MVC Application 1.定制Course的Create和E ...

  5. jackson 学习笔记

    Jackson以优异的解析性能赢得了好评,今天就看看Jackson的一些简单的用法. Jackson使用之前先要下载,这里一共有三个jar包,想要获得完美的Jackson体验,这三个jar包都不可或缺 ...

  6. 【原】spring boot在整合项目依赖的问题

    最近要开发新的项目,就花了几天时间看了下spring boot的相关资料,然后做了一个demo,不得不说开发效率确实很快,几行注解就完成了事务,aop,数据库等相关配置:但由于先前习惯了spring ...

  7. HDU 2063 最大匹配的基础题

    中文题,题目大意不说了. 思路:就是寻找最大匹配,最大匹配就是每次找增广路,如果存在增广,那就把增广路上面的边全部都翻转即可.这样说明能多匹配一个,+1即可. //看看会不会爆int!数组会不会少了一 ...

  8. 原创: rsync软件服务利用ansible实现一键化部署

    ---恢复内容开始--- 首先创建一个脚本文件 /server/tools/peizhi.sh cat  /server/tools/peizhi.sh cat >>/etc/rsyncd ...

  9. fly.js抛物线连续不断加入购物车

    http://yanshi.sucaihuo.com/jquery/2/298/demo/

  10. xml解析 使用dom4j操作xml

     使用dom4j操作xml 1 导入 dom4j,的jar包   2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...