Mestre
Responda as seguintes questões:
1)Qual é o objetivo de usar membros static em uma classe? Compare como um membro static e outro nao static podem ser acessados de fora da classe? Este prática não contradiz o princípio de programação orientada a obejtos?
O objetivo de se usar membros static é quando o valor de um membro da classe seja comum a todos os objetos dessa classe, independente de sua instância.
Um membro static é acessado pelo nome da classe e não pelo nome do objeto contrário aos que não são estáticos, que são acessados pelo nome do objeto.
Essa é uma prática procedural, já que um membro estático é chamado por uma classe e não por um objeto. Porém em algumas situações seu uso, mesmo em orientação a objeto, é necessário.
2)Em uma estrutura de classes com herança, porque faz sentido utilizar membros protected e não private? Em que caso podemos utilizar membros private em uma classe pai de outras classes?
Um atributo ou método private só pode ser acessado diretamente por outros métodos ou atributos dentro do encapsulamento da própria classe, enquanto um método ou atributo protected permite, em caso de herança, que a classe filha possa acessar os atributos ou métodos da classe pai diretamente.
Para se acessar membros private de uma classe, é necessário que essa classe tenha implemento métodos de acesso, "getters" e "settters" para que classes externas possam obter e modificar esses membros. 3) public class A { private int i = j; private int j = 10; public static void main(String args[]) { System.out.println((new A()).i); } }
Considerando o código acima, qual deverá ser o resultado da compilação e execução deste código?
Esse código não compilará, pois o x está sendo inicializado com j antes de j ser definido.
Para que o código compilasse, é necessário inverter as linhas de declarações de i e j, como abaixo:
public class A
{
private int j = 10; private int i = j; public static void main(String args[]) {