我是java新手,我正在学习创建对象类.我的一个家庭作业要求我在同一个对象类的方法中至少调用一次构造函数.我收到的错误是The method DoubleMatrix(double[][]) is undefined for the type DoubleMatrix
这是我的构造函数:
public DoubleMatrix(double[][] tempArray)
{
// Declaration
int flag = 0;
int cnt;
// Statement
// check to see if doubArray isn't null and has more than 0 rows
if(tempArray == null || tempArray.length < 0)
{
flag++;
}
// check to see if each row has the same length
if(flag == 0)
{
for(cnt = 0; cnt <= tempArray.length - 1 || flag != 1; cnt++)
{
if(tempArray[cnt + …Run Code Online (Sandbox Code Playgroud) 我意识到这个一般性问题不适用于特殊类,但对于简单的类,当我们有多个构造函数,并且一个参数是另一个的干净子集时,用更长的时间调用构造函数会更好吗从列表较短的列表中列出,反之亦然?为什么?
public class A {
int x;
int y;
int z;
public A() {
this(0);
}
public A(int x) {
this (x, 0);
}
public A(int x, int y) {
this(x, y, 0);
}
public A(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
// some setup stuff needed for all A
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public class A {
int x;
int y;
int z;
public A(int x, int y, int z) { …Run Code Online (Sandbox Code Playgroud) 我目前正在我的大学学习初级 Java 课程,并且仍在学习编程的基础知识。本周我们一直在学习构造函数,我被困在本周作业的后半部分,因此非常感谢任何帮助。
实验室第二部分(我被卡住的部分)的说明如下:
编写类 Truck 的完整代码,如下面的类图所示。确保不要在构造函数中使用重复的代码。例如,带有 2 个参数的构造函数应该调用带有 1 个参数的构造函数来设置圆柱体的值。
这些是它想让我做的构造函数。
Truck()Truck(int cylinders)Truck(int cylinders, String manufacturer)Truck(int cylinders, String manufacturer, double load)Truck(int cylinders, String manufacturer, double load,
double tow)关于如何做到这一点的任何解释/示例都会很棒
有人可以帮我调用第一个构造函数并将其放在第二个和第三个构造函数中吗?我的语法可能有些问题,似乎......
在我看来,构造函数可以共享相同的代码,例如:
public class Foo {
private int foo;
{foo = 5;}
public Foo(){}
public Foo(int v){this.foo = v;}
public int getFoo(){return foo;}
}
Run Code Online (Sandbox Code Playgroud)
代码"foo = 5;" 两个构造函数都被调用.
在我看来你不能,但我想确定.是不是可以创建使用参数的公共代码?
例如,像:
public class Foo {
private int foo;
(int m){foo = m*5;}
public Foo(int m){}
public Foo(int v,int m){this.foo = v;}
public int getFoo(){return foo;}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,唯一的方法是创建一个由所有构造函数调用的私有void init(int m)?
ps:我打电话给{foo = 5;}"公共代码",但我想这个功能有另一个官方名称?
编辑(1):
我正在寻找的术语是初始化程序块
这个问题与询问构造函数是否也可以调用另一个构造函数不同.因为在使用初始化程序块时,代码被称为AUTOMATICALLY,即.没有风险调用构造函数而忘记调用它
我对使用"void init"的评论并不好,实际上在这种情况下调用另一个构造函数更好.
简而言之,我的问题是:初始化程序块可以采用参数吗?这与强制实现所有构造函数的某些参数有点相同.
编辑(2):
我现在想知道实现我要求的唯一方法是使用继承来强制使用特定的构造函数.
我有一个类A需要实例化第二个类B,其构造函数需要对类A的同一个对象的引用...
看起来像:
public class A {
B b;
public A() {
b = new B(this);
}
}
public class B {
A a;
public B(A a) {
this.a = a;
}
}
Run Code Online (Sandbox Code Playgroud)
日食一直在抱怨这是不可能的.我认为,这是因为A级的参考目前尚未"准备好"...... 但是如果我将B类的初始化移动到A中的单独函数,那么错误就不会消失我将从"外部"调用...
我怎样才能将这种自引用从外部传递给B的构造函数?
为什么默认构造函数(同一个类)在调用默认构造函数时没有调用,但父类的默认构造函数被调用 - 为什么?
class A{
A(){
System.out.println("A()");
}
}
class B extends A{
B(){
System.out.println("B()");
}
}
class C extends B{
C(){
System.out.println("C()");
}
C(int i){
System.out.println("<------>"+i);
}
}
public class sample {
public static void main(String[] args) {
C c = new C(8);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
A()
B()
<------>8
Run Code Online (Sandbox Code Playgroud) 这些是来自github上的spring amqp示例, 网址 是https://github.com/SpringSource/spring-amqp-samples.git这些类型的java构造函数是什么类型的?他们是吸气者和制定者的简称吗?
public class Quote {
public Quote() {
this(null, null);
}
public Quote(Stock stock, String price) {
this(stock, price, new Date().getTime());
}
Run Code Online (Sandbox Code Playgroud)
反对这个
public class Bicycle {
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
Run Code Online (Sandbox Code Playgroud) 我有一个由三个构造函数组成的类,我的requiremt是我想使用一个单独的对象创建调用所有构造函数.它可能吗?
让我们说
Class A{
A(int a){
}
A(int a,int b){
}
A(int a,int b,int c){
}
Run Code Online (Sandbox Code Playgroud)
我想使用一个对象创建调用所有构造函数,该怎么做?
这是关于Java子类的一个非常基本的问题,我还是不明白。
假设我有一个具有三个字段且仅具有默认构造函数的超类:
public class Superclass {
public int a;
public int b;
public int c;
}
Run Code Online (Sandbox Code Playgroud)
我想添加一个字段x。我不能改变Superclass,所以我做了一个子类:
public class Subclass extends Superclass {
public int x;
public Subclass(Superclass s) {
super();
// what to do??
}
}
Run Code Online (Sandbox Code Playgroud)
我现在想Subclass从现有Superclass对象生成一个对象:
Superclass s = new Superclass();
s.a = "a";
s.b = "b";
Subclass sc = new Subclass(s);
sc.x = "x";
Run Code Online (Sandbox Code Playgroud)
这样,我仍然可以访问sc.a,sc.b等等。
如何最好地做到这一点,而无需在子类的构造函数中“手动”分配所有这些字段?