• 第三次作业


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

     

    public class Student{

    public static void main(String[] args){

    Information a = new Information();

    a.OutputInformation();

    Information b = new Information();

    b.OutputInformation();

    } }

    class Information{

    static int num=0;

    Information()

    { num++;

    }

    public void OutputInformation()

     {

    System.out.println("你已经创建了"+num+"个对象!");

    }

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

     

    package com;

    class StaticDemo { static int x;//静态变量x int y;//实例变量y static public int getX() { return x; } static public void setX(int newX) { x = newX; } public int getY() {

    return y; } public void setY(int newY) { y = newY; } }

    public class ShowDemo { public static void main(String[] args) { System.out.println("静态变量x="+StaticDemo.getX()); //System.out.println("实例变量y="+StaticDemo.getY());// 非法,编译时将出错 //why StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println("静态变量a.x="+a.getX()); System.out.println("实例变量a.y="+a.getY()); System.out.println("静态变量b.x="+b.getX()); System.out.println("实例变量b.y="+b.getY()); } }

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

    package com;

    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的构造器"); }

    }

    public class TestStaticInitializeBlock { public static void main(String[] args)  { new Leaf(); } }

     

     

     

  • 相关阅读:
    c语言学习指针变量
    SQL字符串函数
    [转]HttpWebRequest使用注意(发生阻塞的解决办法)
    Image.FormFile的锁文件解决
    不联网在win8安装framework3.5
    metro app损坏,修复以及商店速度慢的解决方法
    关于C#使用来电通的来电通内部原理浅析
    winform模拟qq聊天界面的小功能textbox1输入自动跳到textbox2
    C#下的路由器后台登录
    dropbox文件夹路径丢失变回默认文件的解决方法
  • 原文地址:https://www.cnblogs.com/Jiao827/p/4888487.html
Copyright © 2020-2023  润新知