Tag: 构造函数

java构造函数:this(。)

为什么输出为“021”? 为什么有“0”和“1”(因为“我”得到“2”为什么它变成“1”)? public class C { protected int i; public C(int i){ this(i,i); System.out.print(this.i); this.i=i; } public C(int i, int j) { System.out.print(this.i); this.i=i+j; } public C(){ this(1); System.out.print(i); } public static void main(String[] args) { C c=new C(); }}

“构造函数调用必须是构造函数中的第一个语句”Java中的问题

可能重复: 为什么this()和super()必须是构造函数中的第一个语句? 我想在Java中使用构造函数链。 例如,对于第一个构造函数,我有一个字符串作为参数,并在从参数字符串创建对象时调用第二个构造函数。 public class IMethodFinder { public IMethodFinder(String projectName, String methodName, int numberOfParameters) { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); IJavaProject javaProject = JavaCore.create(project); this(javaProject, methodName, numberOfParameters); } public IMethodFinder(IJavaProject javaProject, String methodName, int numberOfParameters) { … } } 但是,我收到一个错误“构造函数调用必须是构造函数中的第一个语句”错误。 我制作了一个在两个构造函数之间共享的公共代码,但我不确定这是绕过该问题的唯一解决方案。 public class IMethodFinder { public IMethodFinder(IJavaProject javaProject, String methodName, int numberOfParameters) { dosomething(javaProject, methodName, […]

java构造函数错误:类中的构造函数不能应用于给定的类型

我是java新手我对inheritance或构造函数知之甚少。 扩展类时是否有使用构造函数的限制(如参数数量)? 这是我的计划: class Box { int length,breadth,height; Box(int l,int b,int h) { length=l; breadth=b; height=h; } int volume() { return length*breadth*height; } } class BoxWeight extends Box { int weight; BoxWeight(int l,int b,int h,int w) { length=l; breadth=b; height=h; weight=w; } } class BoxInheritance { public static void main(String args[]) { Box B1=new Box(5,75,4); […]

Android – 活动构造函数

我注意到使用快捷键Alt + Insert并选择构建器,它尝试使用每个私有属性(例如cManager和mTextView )创建构造函数。 我记得我已经创建了没有它的项目并且工作正常。 在运行应用程序之后,在完整的logcat和Activity构造函数之后发生错误: 具有私有财产的构造函数: private ConnectivityManager cManager; private TextView mTextView; public SplashScreenActivity() { this.cManager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); this.mTextView = (TextView)this.findViewById(R.id.mProgressText); } logcat的: 02-20 18:20:56.155 1591-1591/com.universo91.towersrock I/art﹕ Not late-enabling -Xcheck:jni (already on) 02-20 18:20:58.355 1591-1591/com.universo91.towersrock D/AndroidRuntime﹕ Shutting down VM ——— beginning of crash 02-20 18:20:58.361 1591-1591/com.universo91.towersrock E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.universo91.towersrock, PID: […]

Java:inheritance的类构造函数正在调用Super类

在创建java程序时我遇到了问题, 子类构造函数通过调用Superclass的方法抛出Error 代码类似于: class Manage { public static void main(String[] args) { Manager m1 = new Manager ( 35 ); } } class Employee { int emp_id; public Employee(int id) { this.emp_id = id; } public int get_id() { return emp_id; } } class Manager extends Employee { public Manager(int id ) { this.emp_id = […]

Java“this”在构造函数中

嗯,这是一个非常基本的问题,我从来没有用java编写代码,但是我正在为一个朋友写一个类……有类似的东西: class myClass{ private string name; public string getName() { return this.name; } public void setName (int newValue) { this.name = newValue; } private int number; public int getNumber() { return this.number; } public void setNumber (int newValue) { this.number = newValue; } } 我想构建构造函数的方式是: public myClass (string name, int numbers) { this.name = name; […]

Java构造函数具有比其类更广泛的访问级别

Java规范允许具有默认访问权的类具有其构造函数的公共访问权限,它的目的是什么,因为它不能在其包之外引用?

Java:递归构造函数调用和stackoverflow错误

请帮助理解为什么以下代码 public class HeapQn1 { /** * @param args */ public HeapQn1() { new HeapQn1(); } static HeapQn1 n = new HeapQn1(); public static void main(String[] args) { } } 结果是 java.lang.StackOverflowError at com.rg.test.interview.HeapQn1.(HeapQn1.java:8) at com.rg.test.interview.HeapQn1.(HeapQn1.java:9) … 根据我的理解,对象的内存分配发生在堆内存中,我期待OutOfMemoryError,因为在某些时候堆内存将因为重复的对象创建而已满。 在研究中,我发现java构造函数被认为是一个方法,它解释了StackOverflowError,直到我阅读了以下线程。 什么时候在java中调用构造函数? 这说 3. The object is fully constructed/created when the constructor returns. 从我可以收集的,构造函数是一个方法,因为堆内存比堆栈内存大得多,递归构造函数调用导致StackOverflowError。 它是否正确 ? 由于给定代码中的对象不会被完全创建,构造函数的堆栈帧分配实际上会发生吗? […]

尝试在位于其他包的子类中使用受保护的构造函数时,Eclipse显示错误

Hello Stackoverflow社区: – ] 我是新成员,首先我要感谢您提供的非常有用的建议和更正。 因为我是法国人,如果我的英语不完美,请原谅我。 这是我的问题:我正在学习Java编程语言,我想测试一些inheritance的东西。 如果我理解正确,声明为protected的字段可以由与声明受保护字段的类位于同一个包中的类以及它的所有子类访问,无论它们是否在同一个包中。 所以,我做了这4个类来测试这个。 我有一个名为“package1”的包,包含类A和C.我还有一个名为“package 2”的包,其中包含类A2和C,其中A2扩展为A.两个C类具有完全相同的代码,只是包中的它们位于变化。它们不会延伸A. 在A类中,我声明了一些具有不同访问属性的成员,尤其是使用protected visibility声明的构造函数。 这是四个类的代码。 package1,A类: package package1; public class A { public int a; protected int b; private int c; int d; protected static int h = 30; protected void aff(){ System.out.println(h); } protected A(){ a = 1; b = 2; c = 3; d […]

何时在构造函数外部进行初始化?

假设我有 class MyObject { Object object1 = new Object(); Object object2; public MyObject() { object2 = new Object(); } public MyObject(Object object2) { this.object2 = object2; } public MyObject(Object object1, Object object2) { this.object1 = object1; this.object2 = object2; } } object1何时初始化? 在object2之后,在object2之后,取决于? 如果我有一个与object1的全局定义冲突的构造函数会发生什么,例如在上面的第三个构造函数中。 object采用哪个值? 这不会给我带来任何问题,但我只想更好地理解语言。 我想知道这些小事情,以便我以后可以利用它们。