java利用类与对象输出_JAVA类与对象

1.以下代码无法通过编译,哪里出错了?

f3a8ffc6e3dc202581e27b30ca86a72b.png

原因:构造函数Foo()未定义,如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

截图如下:

ca24b9d0ba2e2dec06a04b6a4c782af4.png

2.请依据代码的输出结果,自行总结Java字段初始化的规律

60f31f1685544b1a3aee1f6b566a9385.png

b566aa6e599a0a236312a495df1fbd1c.png

输出结果为:100   300

总结Java字段初始化的规律:Java字段初始化规律系统会按顺序对Java字段进行初始化,如果有好几个方法都对同一个变量进行了初始化。Java会将最后一次的初始化结果赋给该变量。

3.动手动脑:当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行,请自行编写代码验证以上结论

class GrandFather

{

static

{

System.out.println("GrandFather的静态初始化块");

}

}

class Father extends GrandFather

{

static

{

System.out.println("Father的静态初始化块");

}

}

class Son extends Father

{

static

{

System.out.println("Son的静态初始化块");

}

}

public class Hello

{

public static void main(String[] args)

{

new Son();

}

}

fd9f61ec0bb33c1f22b76a870c1f1619.png

4.动手动脑:请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”

静态初始化块只执行一次。创建子类型的对象时,也会导致父类型的静态初始化块的执行。

a8b75ee07560778173fc8c3b5e6a9516.png

5.静态方法只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或者方法)

请编写代码验证你的想法

public class Test {

public static void main(String[] args){

Foo f;

f=new Foo();

f.display();

}

}

class Foo{

public static void display(){

System.out.println("调用成功!");

}

}

d7413a001a2bf0df4d447c076922d796.png

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

class Num{

private static int n;

public Num()

{

n++;

}

public static int get()

{

return n;

}

}

public class Number {

public static void main(String[] args){

Num n1=new Num();

Num n2=new Num();

System.out.println("创建对象的个数为:"+Num.get( ));

}

}

ea747b5a6a35269e5cedef48a5ed7fc5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值