Java的成员变量初始化】的更多相关文章

java中成员变量的初始化,如果是普通成员变量可以赋初值,如果没赋初值,则系统会自动赋初值.而对于局部变量必须手动赋初值. package MyText2; public class MyText1 { int str1; public static void main (String []args) { MyText1 mytext = new MyText1(); System.out.println(mytext.str1); } } 输出结果: 0 也可以声明时直接赋初始值. packa…
一. 定义处默认初始化vs构造函数中初始化 java中类成员变量支持在声明处初始化,也可以在构造函数中初始化,那么这两者有什么区别呢?看下面例子 public class FieldsInit { public static void main(String[] args) { Test test = new Test(); } } class Print { public Print(String s) { System.out.println(s); } } class Test { pri…
对于方法里面的成员变量,Java要求程序员强制提供一个初始化的值.比如下面这个方法就会出错: public class Breakyizhan{ public void Z(){ int z; z++; } public static void main(String[] args) { Breakyizhan B = new Breakyizhan(); B.Z(); } } /* (www.breakyizhan.com) 输出结果是: 编译会出错,方法变量没有初始化 */ 而对于类的数据,…
[Java笔试真题]:构造方法.成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的? [解答]:当类第一次被加载的时候,静态变量会首先初始化,接着编译器会把实例变量初始化为默认值,然后执行构造方法. Java程序的初始化一般遵循以下三个原则(以下三原则优先级依次递减): ① 静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次: ② 父类优先于子类进行初始化: ③ 按照成员变量定义顺序进行初始化,即使变量定义散布于方法…
Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究.   1  无继承情况下的Java初始化顺序: class Sample { Sample(String s) { System.out.println(s); } Sample() { System.out.println("Sample默认构造函数被调用"); } } class Test { static Samp…
看到了C++11,看到了XE7的64位,想实现下面方便的类成员初始化,失望. 一.64位用法 clang3,64位编译器,不支持中文变量名,编写代码提示没有32位快,风格简单不用写单独的赋值语句函数,一步到位,c#,java都支持的写法. class TTableNames64 { public: String TB1 = "TB1"; String TB2 = "TB2"; // String 变量a; // error 汉字变量不识别 } TableNames6…
Java基础-成员变量与局部变量 1.什么是成员变量与局部变量? public class Student {   String name;   int high;   public void study(){       int j=0;       System.out.println("学习");   }   public void play(){       System.out.println("打游戏");       int j=0;   }} 例如在…
最近在学习c++,不同类型的c++成员变量在初始化的时候也有很有的区别,查了一些资料之后再此记录一下: #include<iostream> using namespace std; //c++ 类成员变量初始化总结 class Test { private: int var1;//普通变量 int &var2;//引用类型 const int var3;//常成员 static int var4;//静态成员 static const int var5;//静态常成员 有资料说可以在…
谈谈java中成员变量与成员方法继承的问题 关于成员变量和成员方法的的继承问题,我也可以做一个小测试,来看看结果. 首先我们先创建一个父类:…
转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量,静态变量的辨析 Java中的变量大致分为 成员变量 和 局部变量 两大类. 成员变量:在类体里面定义的变量称为成员变量: 如果该成员变量有 static 关键字修饰,则该成员变量称为静态变量或类变量: 如果该成员变量没有 static 关键字修饰,则该成员变量被称为非静态变量或实例变量. 局部变量:形参.方…
一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: 先按照静态成员变量的定义顺序在类内部声明成员变量. 再按照原java类中对成员变量的初始化顺序进行初始化. 一个java类和编译后的class对应的转换如下: 源文件: public class Person{ public static String name="张三"; public…
首先根据下面的这个一段代码:引入关于java初始化顺序的问题public class InitationTest extends Person { public InitationTest() { System.out.println("InitationTest constructor"); } static int j = 10; static { System.out.println("j="+j); System.out.println("Init…
结论:执行的大致顺序如下, (1) 在一个不存在继承的类中:初始化static变量,执行static初始化块-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法 (2)在一个存在继承的类中:初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普…
java面向对象过程中,最基本的两类变量就是成员变量和局部变量 成员变量是写在类中并且写在方法外部,一般写在每个类的头部,用于初始化或者方法操作,作用域是整个类被实例化到被销毁,中间变量都可以被外部方法(权限为public时)或者内部方法所共享使用,并且可以保持变量的值,就是多个方法可以复用该变量,成员变量一般要加权限修饰符,并且定义成员变量的时候系统会给初始值0 而局部变量作用域只在方法内部,当方法调用完毕,该变量也自动消失,并且只有方法本身可以使用,其他方法或类都不能使用该变量,也就是方法本…
java尽力保证:所有变量在使用前都能得到恰当的初始化 ①函数/方法局部变量的初始化 在C/C++中,变量的初始化还是得依赖于程序员的自觉性.对于函数局部变量,编译器不会为基本类型赋予默认初始值,新手经常会使用未初始化的指针访问内存,导致程序崩溃.对于类对象,编译器将使用类的默认构造函数对对象进行初始化.而在java中,对于方法的局部变量,java以编译时错误来保证变量在使用前都能得到恰当的初始化. void f(){ int i ; i ++ ; //Error- - i not initia…
精简后方便自己理解. 成员变量 我们研究一个事物: 属性:外在特征:如身高,体重 行为:能做什么:如说话,打球. 在Java语言中,最基本的单位是类(class),类就是用来体现事物的. 属性:类中的成员变量 行为:类中的成员方法 定义类就是在定义类中的成员(成员变量和成员方法) 类是一个抽象的概念,对象就是类的具体的体现. 例如:汽车,可以看做一个汽车类,每一台车都有颜色和轮胎数(可以定义为属性,即成员变量),每一台车都可以跑(即车的行为,对应类总的成员方法),我们把汽车实例化一下,即会产生一…
java语言支持的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 局部变量:类的方法中的变量. 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰. public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 public void method(){  int i =0; // 局部变量  }  } JAVA的局部变量 局部变量声…
1.java虚拟机执行程序,首先须要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量 再load子类. 初始化子类静态代码块和成员变量 2.load完成父类与子类后,从main函数入口运行程序.先输出,接着new实例化Beetle类,则先实例化父类Insect,实例化父类时.先初始化非静态成员变量和非静态代码块,接着运行父类构造方法 再实例化子类,实例化子类时,先初始化非静态成员变量和非静态代码块,接着运行子类构造方法. package it.xiangnan.test; publi…
1. 静态方法: 成员变量分为实例变量和静态变量.其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量.而静态变量被该类所有的对象公有(相当于全局变量),不需要实例化就已经存在. 方法也可分为实例方法和静态方法.其中,实例方法必须在类实例化之后通过对象来调用,而静态方法可以在类实例化之前就使用.与成员变量不同的是:无论哪种方法,在内存中只有一份——无论该类有多少个实例,都共用同一个方法. 实例方法的调用: ClassA a = new ClassA();  …
首先,成员变量可直接初始化(即赋值),也可不赋值,不赋值java按照以下类型自动赋值 局部变量调用前必须初始化(赋值),java不会自动处理 局部变量可以和成员变量重名(但不建议),如果在当前对象的方法内调用当前属性(成员变量),需要this.属性名 例如: public class Test { String name; public void setName(String name) { this.name = name; } } 详细见this super 篇…
大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果.这实际上是在考查我们对于继承情况下类的初始化顺序的了解.  我们大家都知道,对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序以此是(静态变量.静态初始化块)>(变量.初始化块)>构造器.我们也可以通过下面的测试代码来验证这一点:  Java代码…
参考C++11FAQ https://www.chenlq.net/cpp11-faq-chs 11以后可以直接在类里面初始化成员变量,类似这样 class A { int a=1; const int b=a; double c=1.1; const double d=2.2; }; static 仍然不行,因为不能进行多次赋值吧. 而里面成员变量的赋值顺序则是按照声明的顺序a,b,c,d…
const可以用来声明常量也就是说他的值不能被修改: const成员必须在定义的时候同时初始化,不能进行赋值 如 const int a:a的值不能修改,不能给它赋值,如何才能让它一开始就拥有一个值? 1.在声明的时候对他进行初始化 const int a=1; 2.在函数中声明的形参,在函数被调用时会得到实参的值. 但是如果在类中呢? class Demo { const int ci; public: void get_ci() { return ci; } }; 当直接用这个类定义一个对象…
关于成员变量与局部变量: 如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程) . 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝,一个线程对该局部变量的改变不会影响到其他的线程. 实例: Servlet容器为了响应多个用户同时访问一个Servlet的HTTP请求,通常会为每个请求分配一个工作线程,这些工作线程并发执行同一个Servlet(即Servlet是单实例的)的servic…
java费静态变量的初始化分为两种情况,一种是局部变量,一种是类的域. 对于类的域,java在类初始化时,会为变量赋一个初始值.对于基本数据类型,java会将初始值设置为二进制0,具体为将boolean设置为false,将byte设置为0,将char设置为0(即空格),short设置为0,int设置为0,long设置为0,float设置为0.0f,都变了设置为0.0.对于引用类型也会将其初始值设置为二进制0,即null. 而对于局部变量加入你在申明变量的时候没有为其设置初始值,java将认为你这…
在查找const相关资料的过程中,又遇到了另外一个问题,就是C++类中const static(或者static const)成员变量应当如何初始化的问题. 查阅了许多资料,发现VC环境下,只允许const static成员变量在类外初始化,这个应该是编译器遗留下的bug(你也可以说是要求严格). 在其他编译器下,整型以及枚举类型的const static成员变量是允许在声明的同时进行初始的,其中整型包括int.short.long.char等,非整型是指浮点型 包括float.double等.…
由于面试题中,考官出了一道简单的程序输出结果值的题:如下, class A { private: int n1; int n2; public: A():n2(0),n1(n2+2){} void Print(){ cout << "n1:" << n1 << ", n2: " << n2 <<endl; } }; int main() { A a; a.Print(); return 1; } 这时,那个…
1:成员变量定义在类中,整个类中都可以访问.2:局部变量定义在函数,语句,局部代码块中,只在所属的区域有效.3:成员变量存在于堆内存的对象中.4:局部变量存在于栈内存的方法中.5:成员变量随着对象的创建而存在,随着对象的小事而消失.6:局部变量随着所属区域的执行而存在,随着所属区域的结束而释放.7:成员变量都有默认初始化值.8:局部变量没有默认初始化值.…
1.作用于不同: 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类的内部都是可见的 2.初始值不同 JAVA会给成员变量一个初始值 JAVA不会给局部变量赋予初始值 3.在同一个方法中,不允许有同名局域变量 在不同方法中,可以有同名局域变量 4.两类变量同名时,局域变量具有更高的优先级…
对于内置变量的自动初始化 代码1 1 #include<stdio.h> 2 #define CONST 100 3 int *p1; 4 int a[2]; 5 int b; 6 static int c; 7 main() 8 { 9 int d; 10 static int e; 11 int f[2]; 12 int *p2; 13 printf("CONST=%d\n",CONST); 14 printf("a[0]=%d\n",a[0]);…