首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java的静态属性,静态块,构造函数的执行顺序

System.out.println("-------第2次实例化-------"); new C(); } } class A { public A(){ System.out.println("构造静态属性...A"); } } class B { public B(){ System.out.println("构造普通属性B"); } } class E { public E(){ System.out.println...C"); } } 运行结果: -------第1次实例化------- 父类的静态属性E 构造静态属性A 静态代码块 父类的普通属性F 构造父类D 构造普通属性B 普通代码块 构造函数...C -------第2次实例化------- 父类的普通属性F 构造父类D 构造普通属性B 普通代码块 构造函数C 结论(实例化顺序): 父类静态的属性 父类静态的代码块 子类静态的属性 子类静态的代码块...父类普通属性 父类普通代码块 父类构造函数 子类普通属性 子类普通代码块 子类构造函数 静态的东西只在第一次实例化的时候执行 原则:先静态后非静态、先父类后子类

1.1K60

java 构造构造方法_Java构造器(构造方法constructor)

5、构造器不能被子类继承,Java中子类会自动调用父类的构造器(同样,不了解的可以先记下概念或者跳过) 前面既然说了构造器是一种特殊的方法,我们就来看一下构造方法和普通方法的区别: 1、命名:构造器的方法名必须和类名相同...) 来看一下无参构造器的代码,同时看一下无参构造器的情况下(不定义构造器同理)是如何给属性赋值的: 1 package test; public class Student01 { //定义属性 public...static void main(String[] args) { Student01 s1 = new Student01();//执行这一步的时候会自动调用Student01() //通过 对象.属性来给属性赋值...(给属性赋值不用再一个一个通过对象.属性) 1 package test; public class Student02 { // 定义属性 public String name; public int...,可以是零个(以前创建对象没写构造器的时候)或多个 1 package test; public class Student02 { // 定义属性 public String name; public

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面向对象(二)-构造函数与属性

    1.构造函数 定义: 当我们使用类通过new关键字来创建一个对象的时候,其实是调用了这个类的构造方法。 语法: 通过实现一个跟类名一样,但不带返回类型的的方法,来写构造方法。...不带参数的构造函数称为“默认构造函数”。 无论何时,只要使用new运算符实例化对象,并且不为 new提供任何参数,就会调用默认构造函数。...对于对象的用户,属性显示为字段,访问该属性需要相同的语法。 对于类的实现者,属性是一个或两个代码块,表示一个get访问器和/或一个set访问器。...当读取属性时,执行get访问器的代码块;当向属性分配一个新值时,执行set访问器的代码块。 不具有set访问器的属性被视为只读属性。 不具有get访问器的属性被视为只写属性。...要求游戏职业定义为枚举、还要用到构造函数。

    77820

    Java构造函数

    构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用。 Java构造方法的特点如下: 构造方法名必须与类名相同。...,但是还是可以调用无参数的构造方法创建User对象,因为Java虚拟机会为没有构造方法的类,提供一个无参数的默认构造方法,默认构造方法其方法体内无任何语句,默认构造方法相当于如下代码: //默认构造方法...构造方法重载示例代码如下: 1 //Person.java文件 2 package com.a51work6; 3 4 import java.util.Date; 5 6 public...构造方法封装 构造方法也可以进行封装,访问级别与普通方法一样,构造方法的访问级别参考[ Java学习基础 ] Java的封装性与访问控制中图所示。...示例代码如下: 1 //Person.java文件 2 package com.a51work6; 3 4 import java.util.Date; 5 6 public class

    1.3K60

    Java里的构造函数(构造方法)

    参考链接: java构造函数 本文转载之https://www.cnblogs.com/livterjava/p/4709561.html 构造函数 ,是一种特殊的方法。...一, 构造函数的特点: 构造函数的主要作用是完成对象的初始化工作,(如果写的类里面没有构造函数,那么编译器会默认加上一个无参数且方法体为空的构造函数).它能够把定义对象时的参数传给对象的域。...如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误。...一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。构造方法可以重载,以参数的个数,类型,顺序。  ...但是,子类只能继承父类的默认构造函数,如果父类没有默认的构造函数,那子类不能从父类继承默认构造函数.这时子类必须使用super来实现对父类的非默认构造函数的调用.

    2.5K00

    Java基础】类的成员总结(属性,方法,构造器,代码块,内部类)

    先声明,后使用 1.3 变量都有其对应的作用域 2.不同点: 2.1 在类中声明的位置的不同 属性:直接定义在类的一对{}内 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量...3.构造器 1.构造器的作用: 1.创建对象 2.初始化对象的信息 2.说明: 1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器 2.定义构造器的格式:权限修饰符 类名(...,则按照声明的先后顺序执行 非静态代码块内可以调用静态的属性、静态的方法,或非静态的属性、非静态的 5.内部类 在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,...(6)类内可以定义属性、方法、构造器等 可以被final修饰,表示此类不能被继承。...在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 。

    53030

    什么是java构造函数_什么是java构造函数

    构造函数是面向对象中的一员,构造函数可以叫做构造器,它的函数名与类名相同,不用定义返回值类型,也没有具体的返回值。...那么我们在java里面怎么在对象一旦创建就赋值呢? 1.构造方法的作用: 构造方法作用:对对象进行初始化。 如图: 2.构造函数与普通函数的区别: (1)一般函数是用于定义对象应该具备的功能。...3.构造函数要注意的细节: (1)当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。...对象一建立就运行并且优先于构造函数。 2:与构造函数区别 (1)构造代码块和构造函数的区别,构造代码块是给所有对象进行统一初始化, 构造函数给对应的对象初始化。...args) { System.out.println(); Boy b = new Boy(); Boy b2 = new Boy(“jack”, 1, “男”); } } php中文网,大量的免费Java

    1.2K20

    Java默认构造

    Java中的默认构造器返回的值是什么? 当我们用Java调用构造函数时,它返回由它创建的对象。 这就是我们用Java创建新对象的方式。 7. 我们能继承构造函数吗?...不能,Java不支持构造函数的继承。 8. 为什么在Java构造函数不能是final,static或abstract? 如果将方法设置为final,则意味着我们不希望任何类覆盖它。...但是构造函数(按照Java语言规范)不能被覆盖。 因此,没有必要将其标记为final。 如果我们将方法设置为抽象方法,则意味着它没有主体,应在子类中实现。...但是,当使用new关键字时,将隐式调用构造函数。 因此,它需要一个body。 如果我们将方法设置为static,则意味着它属于该类,但不属于特定对象。 始终调用构造函数来初始化对象。...因此,没有使用标记构造函数为静态的。

    79031

    【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )

    构造函数 II . 主构造函数声明属性 III . init 初始化代码块 IV . 主构造函数参数 和 成员变量访问方式 V . 主构造函数 可见性 设置 VI ....主构造函数声明属性 ---- 在类中声明属性可以在类中使用 var / val 属性名称 : 属性类型 声明属性 , 也可以在主构造函数中声明属性 ; ① 正常的主构造函数 : 构造函数是普通的构造函数..., 类属性字段在类体中定义 ; /* 主构造函数中不声明属性 ; */ class Student constructor(name : String, age : Int){ var...name : String = name var age : Int = age } ② 主构造函数中声明属性 : 在主构造函数中 , 可以直接声明类中的属性 , 下面的代码 与 上面的代码是等价的...构造函数 代码执行顺序 ---- 1 . 代码执行顺序 : 先执行主构造函数 , 此时会初始化成员属性 与 执行 init 初始化代码块 , 然后执行次构造函数内容 ; 2 .

    3.8K10

    Java复制构造函数

    参考链接: Java中的构造方法重载 //Example:   //1.Clock类:   public class Clock {    private int hour;    private int...Clock(){     setTime(0,0,0);    }    public Clock(int h,int m,int s){     setTime(h,m,s);    }    /* 拷贝构造函数...这时就需要copy构造函数来进行深复制(也就是使对象中包含的类等复杂类型使用值赋值,而不是引用赋值)  -------------------------------------------------...---------------------------------   构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。...对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

    95420

    java构造函数调用另一个构造函数_java中的构造函数

    参考链接: Java程序从另一个调用一个构造函数 package demo03; /*  * 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法  * 格式:... * public 类名称(参数类型 参数名称){  *         方法体  *   * }  * 注意事项:  * 1.构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样  * 2.构造方法不要写返回值类型...,连void都不写  * 3.构造方法不能return一个具体的返回值  * 4.如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数,方法体什么都不做  * 5.一旦编写了至少一个构造方法...,那么编译器将不再赠送  * 6.构造方法也是可以进行重载的。  ...;     }     //有参数的构造方法     public Student(String name,int age) {         System.out.println("全参构造方法执行啦

    4.5K60

    【说站】js中构造属性的介绍

    js中构造属性的介绍 1、在对象中,可以设置一些奇怪的属性_num,称之为构造属性。一般来说,这种属性不想直接通过外部访问(obj._num)。...我们希望控制这个属性的访问逻辑,obj.num可以访问它,然后改变它的逻辑。 2、构造属性可以重写自定义属性的get和set方法。...实例 var obj={ _num:0 } obj.num可以访问到,返回 数字:0 Object.defineProperty(obj,‘num’,{ //当我们没有设置这个属性时,默认是隐式调用,如果设置了...,会调用你设置的方法 //重写自定义属性的set和get属性 set(num){ thsi...._num }//在num的值被获取时,调用 }) console.log(obj.num); obj.num=5; console.log(obj.num); 以上就是js中构造属性的介绍,希望对大家有所帮助

    1.6K30

    构造函数内的方法与构造函数prototype属性上方法的对比(转)

    本文的目的是让大家理解什么情况下把函数的方法写在JavaScript的构造函数上,什么时候把方法写在函数的prototype属性上;以及这样做的好处....,第一个是A,这个构造函数里面包含了一个方法sayHello;第二个是构造函数B, 我们把那个方法sayHello写在了构造函数B的prototype属性上面....需要指出的是,通过这两个构造函数new出来的对象具有一样的属性和方法,但是它们的区别我们可以通过下面的一个图来说明: image.png 我们通过使用构造函数A创建了两个对象,分别是a1,a2;通过构造函数...定义在构造函数内部的方法,会在它的每一个实例上都克隆这个方法;定义在构造函数的prototype属性上的方法会让它的所有示例都共享这个方法,但是不会在每个实例的内部重新定义这个方法....把方法写在构造函数的内部,增加了通过构造函数初始化一个对象的成本,把方法写在prototype属性上就有效的减少了这种成本.

    1.1K30

    【Groovy】循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )

    文章目录 一、使用 Java 语法循环 二、使用 IntRange 循环 1、使用默认的 IntRange 构造函数 2、使用可设置翻转属性的 IntRange 构造函数 3、使用可设置是否包含 to...的 IntRange 构造函数 三、使用 0..9 简化方式的 IntRange 实例对象 四、完整代码示例 一、使用 Java 语法循环 ---- 在 Groovy 中 , 使用 Java 语法进行循环...: // Java 语法样式的循环 println "" print "( 1 ) : " for (int j = 0; j <= 9..." for (i in new IntRange(0, 9)) { print i + " " } 执行结果 : ( 1 ) : 0 1 2 3 4 5 6 7 8 9 2、使用可设置翻转属性的...IntRange 构造函数 构造函数 : /** * Creates a new non-inclusive aware IntRange

    1.2K30
    领券