Tag: 构造函数

在java构造函数中传递“this”

查看以下代码: public class ClassA { private boolean ClassAattr = false; public ClassA() { ClassAHandler handler = new ClassAHandler(this); } } public class ClassAHandler extends GeneralHandler { ClassA ca = null; public ClassAHandler(ClassA classa) { this.ca = classa; } } 我需要在一些ClassAHandler方法和其他属性中访问ClassAattr 。 有没有办法在没有在处理程序构造函数中传递原始类的情况下这样做。 我真的不喜欢这个解决方案“看起来”。

在Java中为抽象类创建构造函数有什么用?

我想知道抽象类的构造函数的用途是什么; 因为我们没有实例化抽象类,为什么我们需要这样的构造函数?

Java中子类的构造函数

编译这个程序时,我得到错误 – class Person { Person(int a) { } } class Employee extends Person { Employee(int b) { } } public class A1{ public static void main(String[] args){ } } 错误 – 找不到构造函数Person()。 为什么定义Person()是必要的?

Java静态最终字段初始化顺序

我尝试通过引用同一个封闭类对象初始化静态字段时了解初始化顺序的行为。 public class Test { static final Test t=new Test(); static int a=5; Test(){ System.out.println(“a=”+a); } public static void main(String[] args) { new Test(); } } 上面代码的输出是: a=0 a=5 如果我将变量a修改为除static以外的任何其他内容: static final a=5; a=5; final a=5; 输出是: a=5 a=5 为什么会这样? 注意,即使将t & a都声明为static final ,输出也是a=5 & a=5在这种情况下t先于声明a

java中多级inheritance中构造函数调用的顺序

//: c07:Sandwich.java // Order of constructor calls. // package c07; // import com.bruceeckel.simpletest.*; import java.util.*; class Meal { Meal() { System.out.println(“Meal()”); } } class Bread { Bread() { System.out.println(“Bread()”); } } class Cheese { Cheese() { System.out.println(“Cheese()”); } } class Lettuce { Lettuce() { System.out.println(“Lettuce()”); } } class Lunch extends Meal { Lunch() { System.out.println(“Lunch()”); […]

Java的。 隐式超级构造函数Employee()未定义。 必须显式调用另一个构造函数

您好我是Java的新手,我在生产工人类中遇到此错误。 我的生产工作者构造函数说显式调用另一个构造函数。 我不知道该怎么办?。 import java.util.Date; public class Employee { private String name, number; private Date date; public Employee(String name, String number, Date date) { setName(name); setNumber(number); setDate(date); } public void setName(String n) { name = n; } public void setNumber(String n) { number = n; // you can check the format here for correctness } […]

Java构造函数的默认访问修饰符

任何人都可以解释默认访问修饰符对于显式无参数构造函数 (以及其他构造函数)的作用吗?

对象的创建:构造函数或静态工厂方法

我正在阅读Effective Java ,我认为这些标准的一些东西都不是本书所建议的,例如对象的创建,我的印象是构造函数是最好的方法,书籍说我们应该使用静态工厂方法,我不能少一些优点和缺点,所以我问这个问题,这是使用它的好处。 优点: 静态工厂方法的一个优点是,与构造函数不同,它们具有名称。 静态工厂方法的第二个优点是,与构造函数不同,它们不需要在每次调用时创建新对象。 静态工厂方法的第三个优点是,与构造函数不同,它们可以返回其返回类型的任何子类型的对象。 静态工厂方法的第四个优点是它们减少了创建参数化类型实例的详细程度。 缺点: 仅提供静态工厂方法的主要缺点是没有公共或受保护构造函数的类不能被子类化。 静态工厂方法的第二个缺点是它们不容易与其他静态方法区分开。 参考:Effective Java,Joshua Bloch,第2版,第5-10页 我无法理解第四个优势和第二个缺点,如果有人能解释这些要点,我将不胜感激。 我还想了解如何决定是否使用构造函数或静态工厂方法来创建对象。

如何获取对象构造函数的参数名称(reflection)?

说我以某种方式得到了另一个类的对象引用: Object myObj = anObject; 现在我可以得到这个对象的类: Class objClass = myObj.getClass(); 现在,我可以获得此类的所有构造函数: Constructor[] constructors = objClass.getConstructors(); 现在,我可以循环每个构造函数: if (constructors.length > 0) { for (int i = 0; i < constructors.length; i++) { System.out.println(constructors[i]); } } 这已经给了我构造函数的一个很好的总结,例如构造函数public Test(String paramName)显示为public Test(java.lang.String) 但是,我想获取参数的名称,而不是给我类类型。在这种情况下,“paramName”。 我该怎么办? 我尝试了以下但没有成功: if (constructors.length > 0) { for (int iCon = 0; iCon 0) { for […]

类构造函数中的stackoverflow错误

请原谅可能是一个非常基本的问题,但我正在编写一个程序来存储员工信息,它可以正常工作,直到它试图在我的员工类中设置信息。 它给出了stackoverflow错误,我无法弄清楚为什么。 谢谢你的帮助。 主要课程: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner Input = new Scanner(System.in); System.out.println(“Enter the number of employees to enter.”); int employeeCount = Input.nextInt(); Input.nextLine(); Employee employee[] = new Employee[employeeCount]; String namesTemp; String streetTemp; String cityTemp; String stateTemp; String zipCodeTemp; String address; String dateOfHireTemp; for(int x = […]