一个类只能定义一个constructor(JAVA中,构造器在一个对象被 new时执行;一个类中能定义一个构造器,这两句话都有错吗)

本文目录
- JAVA中,构造器在一个对象被 new时执行;一个类中能定义一个构造器,这两句话都有错吗
- 一个类中能有多重构造方法吗
- java中一个类中能如何声明多个构造方法
- Java中构造函数重载,一个构造函数是private一个是public,那这个类还可以new吗
- 关于Java构造方法的一个问题
- (C#) 什么是默认构造函数如果类只有一个默认构造函数,对象的实例变量是如何初始化的
JAVA中,构造器在一个对象被 new时执行;一个类中能定义一个构造器,这两句话都有错吗
1. A constructor is called when a ’new’ expression is evaluated. This is true. This is the only way to construct an object, if we do not consider Java reflection.
2. You can only define one constructor in a class. This is false. You can define multiple constructors, as long as their parameters are different, just like you can define multiple functions with the same name. The arguments passed to the ’new’ expression determine which constructor to call. You can also mix private and public constructors.
一个类中能有多重构造方法吗
能啊
构造方法是一种特殊的方法,与一般的方法不同是:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:
(1)构造方法名与类名相同.
(2)构造方法不返回任何值,也没有返回类型.
(3)每个类可以有零个或多个构造方法.
(4)构造方法在创建对象时自动执行,一般不能显式地直接调用.
下边是线程
线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。
线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU
线程的周期
新建 就绪 运行 阻塞 死亡
线程调度与优先级
有线程进入了就绪状态,需要有线程调度程序来决定何时执行,根据优先级来调度.
线程组
每个线程都是一个线程组的一个成员,线程组把多个线程集成一个对象,通过线程组可以同时对其中的多个线程进行操作.在生成线程时必须将线程放在指定的线程组,也可以放在缺省的线程组中,缺省的就是生成该线程的线程所在的线程组.一旦一个线程加入了某个线程组,不能被移出这个组.
java中一个类中能如何声明多个构造方法
public class A
{
public A(){} //构造1
public A(int i){} //构造2
public A(int i,int i){} //构造3
public A(float f){} //构造4
}
直接声明即可,但要求参数的个数,或者类型不一样!
Java中构造函数重载,一个构造函数是private一个是public,那这个类还可以new吗
答案是private修饰的构造函数是不可以new的 ;public修饰的构造函数是可以new 的
举例如下:
1、定义一个类Constructor 无参和有参构造分别public 、private修饰
package BaiduKnows;
public class Constructor {
private int x=1;
public Constructor() {
System.out.println(" 无参是有构造函数");
}
private Constructor(int x) {
this.x=x;
System.out.println("带参共有构造函数 X="+x);
}
}
2、从新定义测试类:
package BaiduKnows;
public class ConstructorTest {
public static void main(String args) {
Constructor con = new Constructor();//这是可以的
//Constructor con = new Constructor(20);这不可以
}
}
关于Java构造方法的一个问题
D不正确是因为构造函数不只是在对象NEW的时候被执行,你也可以在其它重载构造函数内执行,所以D不正确。
例如:
public class test {
public test() {
//这是一个空参构造方法
}
public test(String str) {
//这是一个有参构造方法,在这个方法内调用了上面的空参构造方法。
this();
}
}
但是最让我疑惑的不是这个,而是B,
为什么B是对的呢?很明显这个是错误的答案,不知道是谁给你出的题,但你可以告诉他,这题他出错了。。。
下面程序已经编译通过,里面的public void test()方法就是个普通方法,但可以和类重名不是:
public class test {
public test() {
//这是一个空参构造方法
System.out.println("空参构造方法");
}
public test(String str) {
//这是一个有参构造方法,在这个方法内调用了上面的空参构造方法。
this();
System.out.println("执行this()后,调用了有参构造方法。输出参数:"+str);
}
public void test(){
System.out.println("普通方法");
}
public static void main(String args) {
test t=new test();
t.test();
test t1=new test("我");
}
}
程序输出结果:
空参构造方法
普通方法
空参构造方法
执行this()后,调用了有参构造方法。输出参数:我
(C#) 什么是默认构造函数如果类只有一个默认构造函数,对象的实例变量是如何初始化的
默认构造函数(default
constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。

更多文章:
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30
excel连接sql数据库教程(excel怎么连接sql数据库)
2026年10月14日 19:40







