首页 > 编程知识 正文

java成员变量和局部变量默认值,java 静态局部变量

时间:2023-05-05 18:06:12 阅读:213870 作者:1137

1.静态变量 public class GlobalVar { public static char aChar; public static int anInt; public static long aLong; public static float aFloat; public static double aDouble; public static String string; public static boolean aBoolean; public static int[] ints; public static void main(String[] args){ System.out.println("全局变量char默认值:"+aChar); System.out.println("全局变量int默认值:"+anInt); System.out.println("全局变量long默认值:"+aLong); System.out.println("全局变量float默认值:"+aFloat); System.out.println("全局变量double默认值:"+aDouble); System.out.println("全局变量string默认值:"+string); System.out.println("全局变量aBoolean默认值:"+aBoolean); System.out.println("全局变量ints默认值:"+ints); if(aChar == 0){ System.out.println("全局变量char默认值为空"); }else{ System.out.println("全局变量char默认值不为空"); } }} 全局变量char默认值: 全局变量int默认值:0全局变量long默认值:0全局变量float默认值:0.0全局变量double默认值:0.0全局变量string默认值:null全局变量aBoolean默认值:false全局变量ints默认值:null全局变量char默认值为空 2.成员变量 public class MembereVar { private char aChar; private int anInt; private long aLong; private float aFloat; private double aDouble; private boolean aBoolean; private String string; private int[] ints; public static void main(String[] args){ MembereVar membereVar = new MembereVar(); System.out.println("成员变量char默认值:"+membereVar.aChar); System.out.println("成员变量int默认值:"+membereVar.anInt); System.out.println("成员变量long默认值:"+membereVar.aLong); System.out.println("成员变量float默认值:"+membereVar.aFloat); System.out.println("成员变量double默认值:"+membereVar.aDouble); System.out.println("成员变量boolean默认值:"+membereVar.aBoolean); System.out.println("成员变量string默认值:"+membereVar.string); System.out.println("成员变量ints默认值:"+membereVar.ints); if(membereVar.aChar == 0){ System.out.println("成员变量char默认值为空"); }else{ System.out.println("成员变量char默认值不为空"); } }} 成员变量char默认值: 成员变量int默认值:0成员变量long默认值:0成员变量float默认值:0.0成员变量double默认值:0.0成员变量boolean默认值:false成员变量string默认值:null成员变量ints默认值:null成员变量char默认值为空

结论:

静态变量和成员变量的默认值是一样的基本数据类型: int = 0, long =0, float = 0.0, double = 0.0, boolean=false对象数据类型: 默认值都为null

注意: char这个基本数据类型

char的默认字符是空, 类似于两个单引号中没有任何字符, 但是在代码中
是不能给字符串赋值为’’(如 char ch = ‘’), 如果这样写编译会报错, 因此我们就
不能通过 if(ch == ‘’) 这种形式判断, 这种形式同样会报错.

当我们想要判断char字符是不是被人为的赋值, 我们可以这样写:

if(aChar == 0){ System.out.println("成员变量char默认值为空");}else{ System.out.println("成员变量char默认值不为空");} 根据char是否为0进行判断:
如果为true, 则char没有被人为赋值, 是系统的默认值
如果为false, 则char已经被人为赋值. 3.局部变量 public class LocalVar { public static void main(String[] args){ char aChar ; int anInt; long aLong; float aFloat; double aDouble; boolean aBoolean; String string; int[] ints; System.out.println("局部变量char默认值:"+aChar); System.out.println("局部变量int默认值:"+anInt); System.out.println("局部变量long默认值:"+aLong); System.out.println("局部变量float默认值:"+aFloat); System.out.println("局部变量double默认值:"+aDouble); System.out.println("局部变量boolean默认值:"+aBoolean); System.out.println("局部变量string默认值:"+string); System.out.println("局部变量ints默认值:"+ints); }} Error:(17, 43) java: 可能尚未初始化变量aCharError:(18, 42) java: 可能尚未初始化变量anIntError:(19, 43) java: 可能尚未初始化变量aLongError:(20, 44) java: 可能尚未初始化变量aFloatError:(21, 45) java: 可能尚未初始化变量aDoubleError:(22, 46) java: 可能尚未初始化变量aBooleanError:(23, 45) java: 可能尚未初始化变量stringError:(24, 43) java: 可能尚未初始化变量ints

结论:

局部变量系统默认不会给你默认值, 如果想要使用局部变量则必须进行初始化.

注意: 局部变量的数组new了之后就又有默认值.

局部变量中的基本数组类型new之后的默认值和成员变量(也可以说是静态变量)的默认值是相同.(请看下图) public class LocalVar { public static void main(String[] args) { int[] ints; ints = new int[5]; for (int i = 0; i < 5; i++) { System.out.print(ints[i] + " "); } System.out.println(); float[] floats; floats = new float[5]; for (int i = 0; i < 5; i++) { System.out.print(floats[i] + " "); } System.out.println(); double[] doubles; doubles = new double[5]; for (int i = 0; i < 5; i++) { System.out.print(doubles[i] + " "); } System.out.println(); }} 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。