精华内容
下载资源
问答
  • Java类属性和对象属性的初始化顺序如下: (1)

    Java类属性和对象属性的初始化顺序如下:

    (1) 类属性(静态变量)定义时的初始化

    (2) static块中的初始代码 

    (3) 对象属性(非静态变量)定义时的初始化

    (4) 构造方法(函数)中的初始化代码


    下面举例说明:

    <pre name="code" class="java">public class test {
    	
    	//类属性
    	static String a = "string-a";
    	static String b;
    	
    	//对象属性
    	String c = "string-c";
    	String d;
    	
    	//static块
    	static{
    		printStatic("before static");
    		b = "string-b";
    		printStatic("after static");
    	}
    	
    	public static void printStatic(String title)
    	{
    		System.out.println("***********"+title+"*****************");
    		System.out.println("a = \"" + a + "\"");
    		System.out.println("b = \"" + b + "\"");	
    	}
    	
    	//构造函数
    	public test()
    	{
    		print("before constructor");
    		d = "string -d";
    		print("after constructor");
    	}
    	
    	public void print(String title)
    	{
    		System.out.println("************"+ title + "****************");
    		System.out.println("a = \"" + a + "\"");
    		System.out.println("b = \"" + b + "\"");	
    		System.out.println("c = \"" + c + "\"");
    		System.out.println("d = \"" + d + "\"");	
    		
    	}
    
    	public static void main(String[] args) 
    	{
    		new test();
    
    	}
    
    }
    
    

    上面程序的运行结果如下:

    ***********before static*****************
    a = "string-a" 
    b = "null"
    ***********after static*****************
    a = "string-a"
    b = "string-b"
    ************before constructor****************
    a = "string-a"
    b = "string-b"
    c = "string-c"
    d = "null"
    ************after constructor****************
    a = "string-a"
    b = "string-b"
    c = "string-c"
    d = "string -d"

    由此可以看出类属性与对象属性的初始化顺序。


    展开全文
  • JAVA类属性和对象属性的初始化顺序

    千次阅读 2016-07-14 16:11:50
    1)属性(静态变量)定义时初始化,如:static String ="string-a"; 2)static块中初始化代码,如 ...3)对象属性(非静态变量)定义时初始化,如:static c="string -c"; 4)构造方法(函数)中初始化代码,

    1)类属性(静态变量)定义时的初始化,如:static String ="string-a";

    2)static块中的初始化代码,如

    static{

    string b="string -b";

    }

    3)对象属性(非静态变量)定义时的初始化,如:static c="string -c";

    4)构造方法(函数)中的初始化代码,


    展开全文
  • 代码演示: public class usingAttribute { static String str1=“string1”; static String str2;...static{//static语句用于初始化static成员变量,是最先运行语句块 printStatic(“before static”); str2=...

    代码演示:
    public class usingAttribute
    {
    static String str1=“string1”;
    static String str2;
    String str3=“string3”;
    String str4;
    static{//static语句用于初始化static成员变量,是最先运行的语句块
    printStatic(“before static”);
    str2=“string2”;
    printStatic(“after static”);
    }
    public static void printStatic(String title)
    {
    System.out.println("------"+title+"-----");
    System.out.println(“str1=”"+str1+""");
    System.out.println(“str2=”"+str2+""");

    }
    public usingAttribute()
    {
    	print("before constructor");
    	str4="string4";
    	print("after constructor");
    }//定义了一个构造方法usingAttribute(),在这个方法中,使用了类中的各个属性。构造方法与类同名,且无返回值(包括void),它的主要目的是创建对象。
    public void print(String title)
    {
    	System.out.println("-----"+title+"-----");
    	System.out.println("str1=\""+str1+"\"");
    	System.out.println("str2=\""+str2+"\"");
    	System.out.println("str3=\""+str3+"\"");
    	System.out.println("str4=\""+str4+"\"");
    }
    public static void main(String[] args){
    	System.out.println();
    	System.out.println("-----创建usingAttribute对象-----");
    	System.out.println();
    	new usingAttribute();//使用关键字new和构造方法usingAttribute()来创建一个匿名对象;
    }
    

    }在这里插入图片描述
    由输出结果可以看出,Java类属性和对象属性的初始化顺序如下:
    (1)类属性(静态变量)定义时的初始化,如范例中的static String str1=“string1”;
    (2)static块中的初始化代码,如范例中的static{}中的str2=“string-2”;
    (3)对象属性(非静态变量)定义时的初始化,如范例中的String str3=“string3”;
    (4)构造方法(函数)中的初始化代码,如范例构造方法中的str4=“string4”.

    当然这里只是为了演示java类中的属性和对象属性的初始化顺序。在实际的应用中并不建议在类中定义属性时实施初始化,如例子中的字符串变量:“str1”,“str3”.
    请注意,被static修饰的变量称为类变量(class variables),它们被类的实例所共享。也就是说,某一个类的实例化改变了这个静态值,其他这个类的实例也会受到影响。而成员变量(member variable)则是没有被static修饰的变量,为实例所私有,也就是说,每个类的实例都有一份自己专属的成员变量,只有当前实例才可更改它们的值。
    static是一个特殊的关键字,其在英文中直译就是“静态”的意思。它不仅用于修饰属性(变量)、成员,还可以用来修饰类中的方法。被static修饰的方法,同样表明它是属于这个类共有的,而不是属于该类的单个实例,通常把static修饰的方法也称为类方法。

    展开全文
  • Java 属性 (static 变量) 和对象属性 (非 static 变量) 初始化顺序可以用如下程序测试: <br /> /**  * @(#) Test.java  * @author fancy  */ <br /> public class ...

    Java 类中类属性 (static 变量) 和对象属性 (非 static 变量) 的初始化顺序可以用如下程序测试:
      
      /**
      * @(#) Test.java
      * @author fancy
      */
      
      public class Test {
      
      static String a = "string-a";
      static String b;
      
      String c = "stirng-c";
      String d;
      
      static {
      printStatic("before static");
      b = "string-b";
      printStatic("after static");
      }
      
      public static void printStatic(String title) {
      System.out.println("---------" + title + "---------");
      System.out.println("a = /"" + a + "/"");
      System.out.println("b = /"" + b + "/"");
      }
      
      public Test() {
      print("before constrUCtor");
      d = "string-d";
      print("after constructor");
      }
      
      public void print(String title) {
      System.out.println("---------" + title + "---------");
      System.out.println("a = /"" + a + "/"");
      System.out.println("b = /"" + b + "/"");
      System.out.println("c = /"" + c + "/"");
      System.out.println("d = /"" + d + "/"");
      }
      
      public static void main(String[] args) {
      new Test();
      }
      
      }
      
      首先,我把 main() 方法注释掉,运行结果如下:
      
      ---------before static---------
      a = "string-a"
      b = "null"
      ---------after static---------
      a = "string-a"
      b = "string-b"
      java.lang.NoSuchMethodError: main
      Exception in thread "main"
      Process completed.
      
      然后,取消对 main() 方法的注释,运行结果如下:
      
      ---------before static---------
      a = "string-a"
      b = "null"
      ---------after static---------
      a = "string-a"
      b = "string-b"
      ---------before constructor---------
      a = "string-a"
      b = "string-b"
      c = "stirng-c"
      d = "null"
      ---------after constructor---------
      a = "string-a"
      b = "string-b"
      c = "stirng-c"
      d = "string-d"
      
      由此可以看出 Java 类属性和对象属性的初始化顺序如下:
      
      ① 类属性 (静态变量) 定义时的初始化,如上例的 static String a = "string-a";
      ② static 块中的初始化代码,如上例 static {} 中的 b = "string-b";
      ③ 对象属性 (非静态变量) 定义时的初始化,如上例的 String c = "stirng-c";
      ④ 构造方法 (函数) 中的初始化代码,如上例构造方法中的 d = "string-d";
      
      在此过程中 ② 和 ③ 的顺序无所确定,因为在静态块中无法打印出非静态变量。
    同样是因为这个原因,知道他们的顺序对我们写程序也毫无帮助。再因为类成员 (静态成员) 是在第一次使用到类的时候就进行了相应的初始化,而对象成员 (非静态成员) 则需要生成类实例 (即对象) 时才能初始化,所以我把 ③ 排在了 ② 的后面。再申明一次,它们究竟谁先谁后,从代码上是不能确定的,恐怕需要去研究一下 JVM (Java 虚拟机) 的执行过程才行。
      
      
      以下是一些回帖的讨论:
      我对狂人教程"对象成员 (非静态成员) 则需要生成类实例 (即对象) 时才能初始化"有些看法!例如你在例程中定义的两个对象成员变量String c = "stirng-c";
      String d;我认为当程序执行这个Test类的时候,成员变量(不包括构造函数)和类成员变量一样,都要装载到内存。这样对象成员变量就可以被构造函数所调用。但是究竟静态变量和非静态变量哪个先执行可以看在代码中的先后顺序,但是这对于编写代码来说并没有多大的用处!
      
      static
      {
      printStatic("before static");
      b = "string-b";
      printStatic("after static");
      }在??第一次使用而蒌入??行,且只?行一次。。。。。
      --caterpillar
    http://www.hackhome.com/)(http://www.hackhome.com/InfoView/Article_117743_2.html

    展开全文
  • Java的属性初始化 步骤 1 : 对象属性初始化 对象属性初始化有3种 1. 声明该属性的时候初始化 2. 构造方法中初始化 3. 初始化块 package charactor; public class Hero { public String name = "some hero";...
  • 总之一句话:对象存在,它成员变量就存在,【 就可以不断地在上次变化...Java AWT, BombButton对象有一个标记是否是雷 标记属性isBomb,一个 标记点击次数clickCount属性。 每次点击BombButton,监听器事件处理
  • 每个对象都有自己的属性和行为,这些属性和行为在中体现为成员变量和成员方法,其中成员变量对应对象的属性,成员方法对应对象的行为。 在 Java 中,要引用对象的属性和行为,需要使用点(.)操作符来访问。对象名...
  • 对象属性初始化有3种 声明该属性时候初始化 构造方法中初始化 初始化块 package charactor; public class Hero { public String name = "some hero"; //声明该属性时候初始化 protected float ...
  • Field常用方法Field获取实体类的属性属性值实现步骤输出结果 Field是什么? Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括: 获取当前对象的成员变量的类型 对...
  • 使用common-utils包提供CollectionUtilsBeanPropertyValueEqualsPredicate 比如找id属性值为9587用户 Object obj = CollectionUtils.find(UserList.get(), new BeanPropertyValueEqualsPredicate("id&...
  • JAVA的类属性,静态属性

    千次阅读 2019-04-02 20:16:35
    不同对象 对象属性 值都可能不一样。 比如盖伦hp 提莫hp 是不一样。 但是所有对象的类属性值,都是一样 步骤 1 : 属性 属性: 又叫做静态属性 对象属性: 又叫实例属性,非静态属性 如果一个...
  • 对象的定义方法: 1,对象声明:类名 对象名; 2,对象创建 对象名 = new 类名(); new作用:分配内存空间。 也可以合写为:类名 对象名 = new 类名(); package asa; //设计一个空调 public class aaaa { //空调...
  • 初学java,有什么写不对地方 ,还望诸位大佬能指出来; Hero time = new() Hero; // 这是实例化 time.name = "提莫"; //给属性赋值
  • 1.默认初始化 2.显示初始化、代码块中初始化 3.构造器中初始化 4.通过“对象.属性”或“对象.方法”井下赋值
  • java类的静态属性和静态块执行条件如下所示: 1.如果java类在项目启动的时候,就创建了实例(例如new Person())或者此类的对象交给spring框架管理(依赖注入ioc),那么项目启动的时候就执行这个Java类的所有...
  • 1 类函数、方法 ...此时在该类中的函数,我们可以称之为该实体类的方法了,该实体类中的变量,我们可以称之为该实体类的属性。我们这里以一个Person实体类为例。 public class Person { private String ...
  • 1. JavaBean:标准的Java类 类必须被public修饰 必须提供空参的构造器 成员变量必须使用private修饰 提供公共settergetter方法 成员变量属性的区别: 成员变量:成员变量是定义在类里面的,是类中的属性; ...
  • JAVA 类和对象的实例

    千次阅读 多人点赞 2019-01-15 11:01:23
    JAVA 类和对象的实例 什么是? 1. 是具有相同的属性和功能的事物的抽象的集合,在面向对象程序设计中,人们把一事物的静态属性和动态可以执行的操作组合在一起就得到这个概念。 2. 是个抽象的概念,用来...
  • Java 类属性

    千次阅读 2018-12-15 17:40:26
    不同对象 对象属性 值都可能不一样。  比如盖伦hp 提莫hp 是不一样。  但是所有对象的类属性值,都是一样 步骤 1 : 属性 属性: 又叫做静态属性  对象属性: 又叫实例属性,非静态属性...
  • java对象复制和属性值复制工具

    千次阅读 2017-11-30 16:19:10
    两个不同类型的对象中有字段名称不区分大小写情况下一样,字段含义一样,需要组装到另一个对象中去,然后就写了一个这种工具类型比较特殊,老系统和新系统的对象命名大小写命名不一致,并且字段相同类型也...
  • Java类和对象

    2020-07-31 23:40:05
    1 类和对象的理解【理解】 2 类的定义【应用】 3 对象的使用【应用】 4 学生对象-练习【应用】 1 类和对象的理解【理解】 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 类 类的理解 类是对现实...
  • 这里声明一个类的对象(注意Class中c是大写,class是关键字) 然后获取路径(包名+类名),这样c虽然不是User类,但是就相当于一面镜子 可以通过c获得对象,所以称为“反射” 说明 下面举例说明,这是...
  • Java 类和对象

    2018-01-06 15:24:56
    Java和对象 ...对类的描述:(属性和行为) 属性:一般都使用名词来修饰 行为:一般都使用动词来修饰 类中写 成员变量(实例方法)写在类中方法外 成员方法(实力方法)写在类中 创建对象: 类名 ...
  • //类的完整路径 oj1 = class1.newInstance(); //默认调用People的无参构造器 People p1 = (People)oj1; System.err.println(p1.getName()); } catch (ClassNotFoundException e) { // ...
  • public class ModifierTest1 ...这个程序中一共创建了两个A类的对象,在类A的f()方法中创建的对象a,可以之间用a.ia.s访问私有成员变量,而在main函数中创建的对象却不可如此使用,有点糊涂了,谁能帮忙解释下,谢了
  • 在Scala中,一个类定义了一个属性,如果不是private的 var age=0 那么它也会默认当成private级别的属性,同时会默认生成settergetter方法,当调用的时候,...所以可以通过方法访问类的所有的属性,同java中的javabe
  • CHAPTER1 – java中的类和对象 面向对象 什么是 是对象的类型。 是具有相同属性和方法的一组对象的集合。 什么是对象的属性 属性:对象的各种特征,也可以称为成员变量。 每个对象的每个属性都拥有特定值。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,379
精华内容 12,151
关键字:

java类的属性和对象属性

java 订阅