zoukankan      html  css  js  c++  java
  • 2018/10/21动手动脑及类的创建

    关于类的调用次数,大体使用静态变量来实现。

    代码:

    package yds;

    import java.util.Scanner;

    class Number{
    static int sum;
    public Number(){
    sum++;
    }
    int Sum(){
    return sum;
    }
    }
    public class duixiangsum {
    public static void main(String[] args){
    Scanner scan=new Scanner(System.in);
    Number a=new Number();
    Number b=new Number();
    Number c=new Number();
    System.out.println("你已经创建了"+Number.sum+"个对象");
    System.out.println("是否继续创建(是,请输入yes,否则输入no) ");
    String flag;
    flag=scan.next();
    duixiangsum dt=new duixiangsum();
    dt.Count(flag);
    }
    public void Count(String flag){
    Scanner scan=new Scanner(System.in);
    duixiangsum dt=new duixiangsum();
    if(flag.equals("yes")){
    Number a=new Number();
    System.out.println("你已经创建了"+Number.sum+"个对象");
    System.out.println("是否继续创建(是,请输入yes,否则输入no) ");
    flag=scan.next();
    dt.Count(flag);
    }else{
    if(flag.equals("no")){
    System.out.println("创建结束");
    System.out.println("共创建了"+Number.sum+"个对象");}
    }
    }
    }

    附,结果截图

    通过这个实例,我简单的了解了静态初始化块的执行顺序的一些基本方法。

        1、静态初始化块只执行一次。

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

        3、静态方法中只允许访问静态数据。

        4、静态初始化块不需要在main方法中调用,即使没有main方法它也会执行。

        5、如果对类没有进行实例化,初始化块不会执行,但是静态初始化块会执行。

    关于动手动脑,有以下几点的总结:

    关于这个代码无法编译的问题

    我认为,在系统中已经包含了一些基本的构造方法,但是,如果用户再次私自构建同名构造方法,将会与系统产生冲突,此时系统将谦让用户而不提供默认的构造方法。

        在测试过程中,只要在前一个加上参数就会不提醒错误,但是,在运行的时候仍然会有错误提示。此问题待探究后解决。

  • 相关阅读:
    USACO Milk2 区间合并
    Codeforces 490B Queue【模拟】
    HDU 3974 Assign the task 简单搜索
    HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
    Cin、Cout 加快效率方法
    POJ 1159 回文LCS滚动数组优化
    POJ 2479 不相交最大子段和
    POJ 1458 最长公共子序列 LCS
    在阿里最深刻的,还是职场之道给我的震撼
    精细化
  • 原文地址:https://www.cnblogs.com/yandashan666/p/9826011.html
Copyright © 2011-2022 走看看