java第三章动手动脑

public class InitializeBlockDemo {

/**

* @param args

*/

public static void main(String[] args) {

InitializeBlockClass obj=new InitializeBlockClass();

System.out.println(obj.field);

obj=new InitializeBlockClass(300);

System.out.println(obj.field);

}

}

class InitializeBlockClass{

//下面这句在初始化块之前与之后,会影响到field字段的初始值

//public int field=100;

{

field=200;

}

public int field=100;

public InitializeBlockClass(int value){

this.field=value;

}

public InitializeBlockClass(){

}

}

结果为100  300;明显java中类的初始化块会优先运行切只运行一次,如果类中再对这个变量赋值就会改变这个变量的值,其中也包括调用函数赋值。

package demo;

public class In extends Father{

public static void main(String[] args) {

// TODO Auto-generated method stub

In x;

x = new In();

}

}

class Father{

{

int i = 100;

System.out.println(i);

}

}

结果为100 说明当当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行

package demo;

public class In{

static int n = 10;

public static void main(String[] args){

Stac s = new Stac();

n = s.fuzhi();

s.Output(n);

}

}

class Stac{

int a = 20;

int fuzhi(){

int x;

x = a;

return x;

}

static void Output(int b){

System.out.println(b);

}

}

结果为 20

用静态方法访问类的实例成员是将类的实例变量赋值给静态变量再用静态方法输出。

时间: 2024-10-12 12:43:46

java第三章动手动脑的相关文章

Java第二章动手动脑练习

1.编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果. import javax.swing.JOptionPane; public class Test{ public static void main(String[] args) { int n1=Integer.parseInt(JOptionPane.showInputDialog("Input number 1: ")); int n2=Integer.parseInt(JOptionPane.showI

第九章动手动脑

[动手动脑一] 多层的异常捕获-1 阅读以下代码(CatchWho.java),写出程序运行结果: 程序运行结果: [动手动脑二] 多层的异常捕获-2 写出CatchWho2.java程序运行的结果 程序运行结果: [动手动脑三] 当有多个嵌套的try-catch-finally时,要特别注意finally的执行时机. 请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结. 特别注意: 当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导

第六章动手动脑

1.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 构造函数用来在创建对象时初始化对象,与new运算符一起使用在创建对象的语句时.子类拥有父类的成员变量和成员方法,如果不调用,则从父类继承而来的成员变量和成员方法得不到正确的初始化.不可以反过来调用,父类不知道子类有什么变量,导致子类得不到正确的初始化,程序出错. 2.源代码: public class ExplorationJDKSource { public static void main(Stri

第四章动手动脑与课后作业

java中String类里的String.equals()方法: 源代码: public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject) { return true; } //如果传递进来的参数是String类的实例 if (anObject instanceof String) { String anotherString = (String)anObject; int n = count;//字符串长度 i

java多线程三之线程协作与通信实例

多线程的难点主要就是多线程通信协作这一块了,前面笔记二中提到了常见的同步方法,这里主要是进行实例学习了,今天总结了一下3个实例: 1.银行存款与提款多线程实现,使用Lock锁和条件Condition.     附加 : 用监视器进行线程间通信 2.生产者消费者实现,使用LinkedList自写缓冲区. 3.多线程之阻塞队列学习,用阻塞队列快速实现生产者消费者模型.    附加:用布尔变量关闭线程        在三种线程同步方法中,我们这里的实例用Lock锁来实现变量同步,因为它比较灵活直观.

Java进阶(三十四)Integer与int的种种比较你知道多少?

Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: package

Java分为三个体系

Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由JamesGosling和同事们共同研发,并在1995年正式推出. Java分为三个体系: JavaSE(J2SE)(Java2PlatformStandardEdition,java平台标准版) JavaEE(J2EE)(Java2Platform,EnterpriseEdition,java平台企业版) JavaME(J2ME)(Java2PlatformMicroEdit

Java第三章 P72 输出”欢迎你,青“ 否则输出”对不起,你不是青“

import java.util.*; public class If { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); System.out.println("请输入用户:"); String name =in.next(); System.out.println("请输入密码:");

Java的三种代理模式简述

本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class Singer{ 2 public void sing(){ 3 System.out.println("唱一首歌"); 4 } 5 } 假如你希望,通过你的某种