Programação Orientada a objetos, lista teorica
Por: João Vitor Jacundá • 11/2/2017 • Trabalho acadêmico • 1.287 Palavras (6 Páginas) • 376 Visualizações
1 - Defina classe e objeto:
Uma classe representa um conjunto de objetos que possuem características e comportamentos comuns.
Objetos são instâncias de classes, que determinam qual informação um objeto contém e como ele pode manipulá-la. É uma entidade capaz de reter um estado (informação) e que oferece uma série de operações (comportamento) ou para examinar ou para afetar.
2 - O que acontece quando um objeto é criado? Mostre como criamos um objeto em Java.
A memória é alocada para armazenar informações, no caso os atributos, para um objeto em especifico.
NomeDaClasse nomeDoObjeto = new NomeDaClasse();
Instanciando:
Pessoa s = new Pessoa (“João”,123456);
3 - O que são modificadores de acesso? Explique cada um deles.
Define a visibilidade do método/atributo fora da classe que o criou.
private (privado) - atributo ou método de um objeto dessa classe não pode ser acessado por nenhum outro objeto, ou seja, somente a classe que o criou terá acesso (nenhuma visibilidade externa); protected (protegido) – atributo ou método de um objeto dessa classe poderá ser acessado apenas por objetos de classe que sejam derivadas desta por meio do mecanismo de herança;
public (público) - atributo ou método de um objeto dessa classe pode ser acessado por qualquer outro objeto (visibilidade externa total);
sem modificador - podem ser acessados por objetos de classes do mesmo pacote (package);
4 - Explique as principais diferenças entre classe abstrata e interface.
Diferentemente da classe abstrata, na interface nenhum dos métodos declarados podem ser implementados (são implicitamente públicos e abstratos); todas as variáveis devem ser estáticas e finais (devem ser inicializadas).
Uma classe pode herdar somente uma classe, já uma classe pode implementar diversas interfaces.
5 - Em que consiste a sobrecarga de métodos?
Consiste na propriedade do Java em aceitar métodos com o mesmo nome, assim permitindo a criação de dois ou mais construtores dentro de uma mesma classe.
6 – Identifique, explique e corrija o(s) erro(s) no código abaixo.
Class Ponto2D { //C minúsculo.
private double x,y;
Ponto2D(double _x, double _y) {
x = _x;
y = _y;
}}
class Ponto3D extends Ponto2D {
private double z;
Ponto3D(double _x, double _y, double _z) {
super(_x,_y); // deve-se usar o “super” no construtor para aproveitar os atributos da superclasse.
/* x = _x;
y = _y; */
z = _z;
} }
7 - O que há de errado com o código abaixo? Corrija-o.
/*public*/ interface Teste {
void método (int parametro) {
/*System.out.println("Ola"); */ // interface não possui “código”.
}
}
8 - (Sobrecarga de Construtores) Crie uma classe Conta que irá manipular contas de um banco. A classe deve conter os seguintes atributos: Número (número da conta), Nome (nome do titular da conta), Tipo (tipo da conta, podendo ser poupança ou conta corrente), Saldo (saldo da conta). Também é necessário incluir dois construtores. O primeiro construtor não possui parâmetros e o saldo é inicializado com zero. O segundo construtor possui os parâmetros número da conta, nome do titular e o saldo é inicializado com zero. Por fim, crie o método Despositar, com o parâmetro valor a ser depositado, o qual deve ser adicionado ao saldo, e o método Sacar, com o parâmetro valor a ser sacado, o qual deve ser retirado do saldo.
package joaovitor;
public class Conta {
private int num;
private double saldo;
private boolean tipo;
private String nome;
public Conta() {
this.saldo=saldo=0;
}
public Conta(int num, double saldo, String nome) {
this.num = num;
this.saldo = saldo=0;
this.nome = nome;
}
public void Depositar(double valordep){
saldo=saldo+valordep;
}
public void Sacar(double valorsac){
saldo=saldo-valorsac;
}
public void Imprimir(){
System.out.printf("\nNome: %s \nNumero da conta: %d \nSaldo; %f",nome,num,saldo );
}
}
package joaovitor;
public class JoaoVitor {
public static void main(String[] args) {
Conta jv = new Conta(356454, 765.4, "João Gostoso");
jv.Depositar(100);
jv.Sacar(50);
jv.Imprimir();
}
}
9 - (Sobrecarga de Métodos) Considerando as classes abaixo, para cada chamada ao método sobrecarregado “doisValores” identifique que forma do método será chamada.
class Soma {
public int doisValores(int a,int b){ // soma dois inteiros
return a+b;
}
public double doisValores(double a,int b){ // soma um double e um inteiro
return a+b;
}
public double doisValores(double a,double b) {// soma dois doubles
return a+b;
}
}
class TesteSoma {
public static void main(String[] args)
{ Soma soma = new Soma(); // cria instância da classe Soma
byte b = 20;
short s = 99;
long l = 1234L;
float f = 3.1416f;
double d = 2000;
// Chama vários métodos da classe Soma
System.out.println(soma.doisValores(b,s)); // soma dois inteiro
System.out.println(soma.doisValores(i,s)); // soma dois inteiro
System.out.println(soma.doisValores(i,i)); // soma dois inteiro
...