zoukankan      html  css  js  c++  java
  • 【疯狂Java_突破程序员基本功的16课】charpt6 流程控制的陷阱

    6.4.2 省略花括号的危险

    下面代码中的循环题只有一行代码,所以尝试省略该循环体的或括号

    package com.qunar.bigInteger;
    
    class Cat {
        private static long instancecCount = 0;
    
        public Cat() {
            System.out.println("执行无参的构造器");
            instancecCount++;
        }
    
        public static long getInstanceCount() {
            return instancecCount;
        }
    }
    
    public class CatTest {
        public static void main(String[] args) {
            //循环创建10个Cat对象
            for(int i=0;i<10;i++)
                Cat cat = new Cat();
            System.out.println(Cat.getInstanceCount());
        }
    }

    改程序看上去没有什么问题,但是编译时却有以下的错误的提示:

    CatTest.java:20: 不是语句
                Cat cat = new Cat();
                ^
    CatTest.java:20: 需要 ';'
                Cat cat = new Cat();
                   ^
    2 错误

    这是因为Java规定:如果程序要使用循环来重复定义局部变量,这条局部变量定义语句必须放在花括号内才有效。因此将上面程序中的CatTest修改为以下代码即可:

    public class CatTest {
        public static void main(String[] args) {
            // 循环创建10个Cat对象
            for (int i = 0; i < 10; i++) {
                Cat cat = new Cat();
            }
            System.out.println(Cat.getInstanceCount());
        }
    }
  • 相关阅读:
    【maven】之打包war依赖子项目jar
    ~~运算符
    ~运算符
    Vuex文档
    vue-cli文档
    express文档
    vue-router 2文档
    Swiper文档
    基于React服务器端渲染的博客系统
    react.JS
  • 原文地址:https://www.cnblogs.com/yangfengtao/p/2787137.html
Copyright © 2011-2022 走看看