Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas I
Construtores, palavra this, sobrecarga,
encapsulamento
Usos comuns:
• Iniciar valores dos atributos
• Permitir ou obrigar que o objeto
receba dados / dependências no
momento de sua instanciação
(injeção de dependência)
Construtor • Se um construtor customizado
não for especificado, a classe
• É uma operação especial da
disponibiliza o construtor padrão:
classe, que executa no
Product p = new Product();
momento da instanciação do
• É possível especificar mais de
objeto •
um construtor na mesma classe
(sobrecarga)
Construção
Quando executamos o comando abaixo, instanciamos um produto
"product" com seus atributos “vazios”:
• public: o membro é acessado por todas classes (ao menos que ele
resida em um módulo diferente que não exporte o pacote onde ele está)
this.quantity += quantity;
} System.out.println("Enter product data: "
System.out.print("Name: ");
public void removeProducts(int quantity) { product.name = sc.nextLine();
this.quantity -= quantity; System.out.print("Price: ");
} product.price = sc.nextDouble();
System.out.print("Quantity in stock: ");
public String toString() { product.quantity = sc.nextInt();
return name System.out.println();
+ ", $ " System.out.println("Product data: " +
+ String.format("%.2f", price) product);
+ ", " System.out.println();
+ quantity System.out.print("Enter the number of
+ " units, Total: $ " products to be added in stock: ");
+ String.format("%.2f", totalValueInStock()); int quantity = sc.nextInt();
} product.addProducts(quantity);
} System.out.println();
/*package entities; System.out.println("Updated data: " +
public class Product { product);
public String name; System.out.println();
public double price; System.out.print("Enter the number of
public int quantity; products to be removed from stock: ");
quantity = sc.nextInt();
public Product() { product.removeProducts(quantity);
Até a próxima aula!