Articles of constructor de

¿Cuándo es correcto que un constructor arroje una excepción?

¿Cuándo es correcto que un constructor arroje una excepción? (O en el caso del Objetivo C: ¿cuándo es correcto que un iniciador vuelva a cero?) Me parece que un constructor debe fallar y, por lo tanto, negarse a crear un objeto si el objeto no está completo. Es decir, el constructor debe tener un contrato […]

¿Por qué se invoca el constructor de superclase cuando declaramos el objeto de la subclase? (Java)

Considera este código: class Test { Test() { System.out.println(“In constructor of Superclass”); } int adds(int n1, int n2) { return(n1+n2); } void print(int sum) { System.out.println(“the sums are ” + sum); } } class Test1 extends Test { Test1(int n1, int n2) { System.out.println(“In constructor of Subclass”); int sum = this.adds(n1,n2); this.print(sum); } public static […]

Estado del objeto de clase derivado cuando el constructor de clase base llama al método reemplazado en Java

Por favor, consulte el código de Java a continuación: class Base{ Base(){ System.out.println(“Base Constructor”); method(); } void method(){} } class Derived extends Base{ int var = 2; Derived(){ System.out.println(“Derived Constructor”); } @Override void method(){ System.out.println(“var = “+var); } } class Test2{ public static void main(String[] args) { Derived b = new Derived(); } } El […]

¿Cómo obtener los nombres de los parámetros de los constructores de un objeto (reflection)?

Supongamos que de alguna manera obtuve una referencia de objeto de otra clase: Object myObj = anObject; Ahora puedo obtener la clase de este objeto: Class objClass = myObj.getClass(); Ahora, puedo obtener todos los constructores de esta clase: Constructor[] constructors = objClass.getConstructors(); Ahora, puedo iterar cada constructor: if (constructors.length > 0) { for (int i […]

¿Por qué C ++ no tiene un constructor const?

( Editar: gran cambio porque el ejemplo anterior fue defectuoso, lo que puede hacer que algunas respuestas / comentarios parezcan extraños) Esto podría ser un poco artificial, pero el siguiente es legal debido a la falta de constructor const: class Cheater { public: Cheater(int avalue) : cheaterPtr(this) //conceptually odd legality in const Cheater ctor , […]

C # – Hacer que todas las clases derivadas llamen al constructor de la clase base

Tengo un personaje de la clase base que tiene varias clases derivadas de él. La clase base tiene varios campos y métodos. Todas mis clases derivadas usan el mismo constructor de clase base, pero si no redefino el constructor en mis clases derivadas obtengo el error: Error: Class “child class” no contiene un constructor que […]

¿Cómo se escapa la referencia `this` a una clase externa mediante la publicación de una instancia de clase interna?

Esto se formuló de manera ligeramente diferente, pero solicitando una respuesta de sí / no, pero estoy buscando la explicación que falta en el libro (Concurrencia de Java en la práctica), sobre cómo este aparente gran error podría explotarse maliciosa o accidentalmente. Un último mecanismo mediante el cual se puede publicar un objeto o su […]

mecanismo de invocación del constructor

struct my { my(){ std::cout<<"Default";} my(const my& m){ std::cout<<"Copy";} ~my(){ std::cout<<"Destructor";} }; int main() { my m(); //1 my n(my()); //2 } Rendimiento esperado : 1 ) Default 2 ) Copy Salida real: ¿Qué hay de malo en mi comprensión del mecanismo de invocación del constructor? Note que he omitido los archivos de cabecera por […]

Sincronización del constructor en Java

Alguien en algún lugar me dijo que los constructores de Java están sincronizados para que no puedan accederse simultáneamente durante la construcción, y me preguntaba: si tengo un constructor que almacena el objeto en un mapa, y otro hilo lo recupera de ese mapa antes de su construcción finaliza, ¿se bloqueará el hilo hasta que […]

¿Por qué los constructores no pueden ser heredados en Java?

Soy un principiante en el lenguaje de progtwigción java, recientemente he estudiado que los constructores no pueden ser heredados en java. ¿Puede alguien explicar por qué ? Ya leí este enlace de C ++