Constructores en java

Hola amigos disculpen estoy estudiando java y en las clases el profesor tocó el tema de los "constructores java" y la verdad no entendí bien.

Bueno lo que entendí es esto:

Un constructor es similar a un método pero sólo sirve para inicializar objetos, no devuelve ningún tipo de valor de retorno y un constructor sirve para inicializar el valor de un objeto.

15
задан 06.10.2016, 15:06
8 ответов

В java строитель - вид метода, который позволяет тебе инициализировать признаки класса.

public class Persona {

    private String nombre;
    private String apellido;

    public Persona(){

    }

    public Persona(String nombre, String apellido){
        this.nombre = nombre;
        this.apellido = apellido;
    }

    // Getters y Setters irían aquí abajo ...
}

Поскольку ты можешь видеть в классе, явись лично существуют два строителя, один без параметров

  public Persona() {  
  }

и другой с параметрами

public Persona(String nombre, String apellido){
   this.nombre = nombre;
   this.apellido = apellido;
}

Класс Main остался бы следующей формы:

public class Main {

    public static void main(String[] args) {

        Persona persona1 = new Persona();
        persona1.setNombre("Antonio");
        persona1.setApellido("Morales");

        Persona persona2 = new Persona("Luis", "Veliz");

        System.out.println(persona1.getNombre());
        System.out.println(persona2.getNombre());
    }
}

Вывод был бы этим:

Antonio
Luis

Поскольку ты сможешь замечать для объекта persona2, мы не были должны соглашаться на методы get и set, чтобы давать ему стоимость Вашим признакам, так как мы это создаем начиная со строителя с параметрами.

В классе у тебя может быть все строители хоти, всякий раз когда параметры, которые они получают, были отличными от параметров других строителей, уже будьте в количестве или тип, а именно в классе является лично мы могли бы иметь:

public Persona(String nombre){
    // Código
}

public Persona(String apellido, int cualquierVariable){
    // Código
}

public Persona (Boolean cualquierOtraVariable) {
   // Código
}
11
ответ дан 24.11.2019, 13:11

То, что ты понял, правильно!

Строитель сходный с методом, но служит для того, чтобы инициализировать объекты не возвращает никакого типа стоимости возврата

Определение документации говорит нам:

Строитель используется в создании объекта, который является инстанцией класса. Обычно осуществи операции, потребованные, чтобы инициализировать класс до того, как методы были призваны или согласились на поля. Строители никогда не получены в наследство.

На основании этого мы можем определять характеристики и различия относительно метода:

  • У строителя всегда должно быть то же имя, что и класс.
  • Строитель не имеет типа возврата, что не возвращает какую-то стоимость. Метод может или не иметь тип стоимости возврата.
  • Строитель назван, когда инстанция объекта была создана, и одинокое осуществляется единственный раз, в отличие от методов, которые могут быть названными в многообразных случаях.
  • Строители никогда не получены в наследство, так как они не считались членами класса. Это важное различие относительно методов, так как эти, если бы они могли быть полученными в наследство.
  • Когда мы получаем в наследство базового класса, если он не признает себя строителем, java автоматически назови назначенного по умолчанию строителя класса, который мы получаем в наследство.

Это пример класса, где мы ссылаемся на строителя:

public class Pais { 

    private String nombre; //propiedad nombre de cada objeto Pais. 
    private int cantidadHabitantes; //propiedad cantidadHabitantes de cada objeto Pais. 

    //Constructor, cuando se cree un objeto Pais se ejecutará el código incluido en el constructor, como sabemos sirve para INICIALIZAR.
    public Pais (String nombre, int cantidadHabitantes) {
        this.nombre = nombre;
        this.cantidadHabitantes = cantidadHabitantes ;
        //Puedes inicializar también con un valor fijo. 
        //this.nombre = "México City";
        //this.cantidadHabitantes = 125000;
    } 

      //Getters/Setters
      //método para obtener nombre de pais en el objeto Pais.
    public String getNombre () { return nombre; } 
    //método para asignar nombre pais en el objeto Pais.
    public void setNombre(String nombre){
            this.nombre = nombre;
    }

    //método para obtener cantidad de habitantes de pais en el objeto Pais.
    public int getCantidadHabitantes () { return cantidadHabitantes; } 
    //método para asignar cantidad de habitantes de pais en el objeto. 
    public void setCantidadHabitantes(int cantidadHabitantes){
            this.cantidadHabitantes = cantidadHabitantes;
    }


} 

Я добавляю интересную статью на испанском языке: Определение строителей класса.


Добавьте к объекту методы get и set, которые являются простыми методами, которые мы используем в классах, чтобы показывать (метод get) или изменять (метод set) стоимость признака в классе.

9
ответ дан 24.11.2019, 13:11
  • 1
    Большое спасибо из-за Ваших комментариев, извинения один и #250; ltima спроси и #191; какой get и set? Пока leeia я заметил их, что ты добавил их? Если это не много беспокойства я нравиться и # 237, то есть? – Sommer 07.10.2016, 04:24
  • 2
    Он не molest и # 237; в, это концепции, которые ты должен знать, добавьте в мой ответ, который это м и # 233; все get и set, привет. – Jorgesys♦ 07.10.2016, 04:54

Что Строитель?

Это блок кода, сходного с методом, который называется, когда будут верить в инстанцию объекта.

Что это отличает от Метода?

  • У строителя нет типа возврата.

  • Имя строителя должно быть тем же самым, что имя класса.

  • В отличие от методов, строители не считаются членами класса.

  • Строитель назван автоматически, когда будут верить в новую инстанцию объекта.

Структура Строителя

 /* La palabra reservada public indica que otras clases 
    pueden tener acceso al constructor */
 public NombreClase (TipoDato nombreparam1,TipoDato nombreparam2) 
    /* Parametros Separados por Coma */
 {
     /* Declaraciones y/o asignaciones */
 }

Строитель позволяет предоставлять начальную стоимость для полей (признаков) класса, когда инстанция объект.

 public class Persona {
   /* Atributos */
   private String nombre; 
   private String apellido;

  /* En el Constructor de la Clase Persona Inicializamos  los atributos 
      nombre y apellido  asigname a nombre el valor de name que es enviado
        al instanciar un Objeto de la clase Persona */
  public Persona(String name, String lastname)
  {
   this.nombre = name;
   this.apellido = lastname;
  }

}

Инстанции создаются следующего способа, это будет способствовать тому, чтобы он назвал автоматически строителя, который получает два, параметром типа String

Persona per = new Persona("Nombre1", " Apellido1");
/* tu objeto Persona tendrá sus atributos nombre= Nombre1 y 
   apellido = Apellido1 */

Чтобы Читать Немножко более основательно это, важно и всегда необходимо читать документацию. https://docs.oracle.com/javase/tutorial/reflect/member/ctor.html

Что-то более основательно https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Constructor.html

6
ответ дан 24.11.2019, 13:11

Ваша функция состоит в том, чтобы инициализировать признаки и объекты, которые есть у класса, так как, если они не инициализируются, он может вызывать исключение типа NullPointerException, давайте видеть пример

public class Ciudad{
  private int codigo;


  //aqui el constructor
  public Ciudad(){
   codigo="123"; //asignaste el valor 123 a la variable codigo

   //tambien puedes ejecutar otros metodos esto se hace generalmente cuando quieres que se ejecute una accion al arrancar la aplicacion por ejemplo que muestre un mensaje de bienvenida en consola
   System.out.println("bienvenido");
  }
}

, если ты создаешь объект этого класса, ты увидишь, что инициализируется код в 123 и себе показывает сообщение в консоли удача!

4
ответ дан 24.11.2019, 13:11

Согласно моей перспективе и чтобы достигать в твое сомнение

Строитель, как Ваше имя это говорит, это блок кода, который берется за то, чтобы создавать инстанцию или инициализировать объект определенного класса. Каждый класс имеет или у него должны бы быть некие признаки, которые это отличают от других классов (поэтому других объектов). У строителей нет типа (void, static, и т.д.) также возвращать стоимость, Ваша функция состоит в том, чтобы инициализировать всегда все свойства или признаки класса в вопросе. Не обязательно всегда должна приносить специфическая стоимость, например, стоимость свойства, если мы это желаем (хотя я не вижу хорошо случай) мы можем инициализировать ее как null в случае объектов, в 0 в типах число или в "" в типах текста. Есть два типа строителей, с и без параметров.

Пример:

У нас есть класс, названный Дело с двумя признаками (или свойства): Успокой и Пометь

Наблюдение: Если ты не даешь ему модификатор доступа (лиши тебя, public, protected) по умолчанию только собственный класс и package, они могут соглашаться на это свойство.

  1. Не определенный
    • Смоги соглашаться: Класс и Package
  2. Лиши тебя
    • Смоги соглашаться: только класс
  3. Protected
    • Смоги соглашаться: Класс, package и субкласс (в случае наследства)
  4. Public
    • Смоги соглашаться: Все (Класс, субкласс, package, и т.д.)

Пример:

public class Auto{
    String placa;
    String marca;

    public Auto () {
    }

    public Auto (String placa, String marca){
        this.placa = placa;
        this.marca = marca;
    }
}

В этом особенном случае, у параметров ввода строителя есть те же имена свойств класса. Поэтому я использую this чтобы делать специфическую ссылку на свойства твоего класса, хотя также это мочь быть так:

public Auto (String placaAuto, String marcaAuto){
    placa = placaAuto;
    marca = marcaAuto;
}

Для создания объекта тип Дело, как ты объяснило, что наверху в зависимости от модификатора доступа он такой, как ты можешь создавать это

Если курсоры свойств идут public или не идут смоги быть

Auto nuevoAuto = new Auto();
nuevoAuto.placa = "HV-45-78";
nuevoAuto.marca = "Chevrolet";

Или

Auto nuevoAuto = new Auto("HV-45-78", "Chevrolet");

Обе формы стоились и они помогут тебе в instanciar объекту типа Дело, я надеюсь, что тебе помогает эта информация, и дополнять тех, которые остальные дали тебе.

3
ответ дан 24.11.2019, 13:11

Предоставлять строители для классов класс содержит строители, которые призываются, чтобы создавать объекты начиная с модели классов. заявления строителей видны как mГ©todo заявления, кроме того, что будет использоваться имя класса и у них нет ningГєn типа devoluciГіn. Например, у велосипеда есть строитель: Велосипед pГєblica (int startCadence, int Startspeed, int startGear) { зубчатые механизмы = startGear; каданс = startCadence; скорость = Startspeed; }, чтобы создавать новый объект велосипедов так называемый myBike, строитель назван новым оператором: Велосипед myBike = new велосипеды (30, 0, 8); newBicycle (30, 0,8) поверьте место в память для объекта и инициализируй Ваши поля. Несмотря на велосипеды, sГіlo у него есть строитель, который podrГ, - чтобы иметь другие, включая строитель без аргументов.

Спасибо за комментарии

1
ответ дан 24.11.2019, 13:11

Строитель предоставляет начальное состояние объекта. Думает об объекте, например, класс Дело со свойствами: Marca, Modelo, Kilometraje и Color. Когда ты будешь верить в объект этого класса, ты должен давать стоимость для этих свойств Пример:

Auto carro1= new Auto("Ford", 2012, 56000, "verde")

, когда объект дает эту стоимость, строится этими caracterГ-sticas.

Эта instrucciГіn new Auto("Ford", 2012, 56000, "verde") называет строителя и говорит ему стоимость, что tendrГЎ объект carro1

1
ответ дан 24.11.2019, 13:11

Все очень простое, больше, чем он кажется. Изменчивый Java хранит ссылки на объекты, что всей жизни назвало его указателем. Изначально, не инициализируя, он содержит мусор, то есть, это будет мало безопасный элемент использования.

Нуждаться в том, чтобы располагать объектом, но только ты можешь получать это начиная со строителя, который является механизмом, который позволяет тебе создавать ссылку, которая будет сохранять переменную. Благодаря строителю, размещается место памяти указателя и ему предоставляется начальная стоимость, с которой объект начинает функционировать.

Строитель, следовательно, - способ, которым получаются объекты для класса.

0
ответ дан 24.11.2019, 13:11

Теги

Похожие вопросы