Alguém poderia me ajudar com esse programa básico para alguns difícil para mim!
Uma classe Pessoa com atributos nome e sobrenome. Cada um desses
atributos deve ter métodos para acessa-los e altera-los. A classe Pessoa
ainda deve ter um método getNomeCompleto que não possui parâmetro
de entrada e que retorna a concatenação do atributo nome com o atributo
sobrenome separados por um espaço. A classe deve também possuir um
construtor sem parâmetros e um outro construtor que recebe como
parâmetros o nome e o sobrenome da pessoa e altera esses atributos;
Crie uma subclasse de Pessoa chamada Funcionario, que possui os
atributos matricula e salario com seus métodos de acesso e alteração
(getters e setters). Todo funcionário recebe seu salário em duas parcelas,
60% na primeira parcela e 40% na segunda parcela. Crie dois métodos
getSalarioPrimeiraParcela e getSalarioSegundaParcela que retorna o
valor correto de cada parcela;
Crie uma subclasse de Funcionário chamada Professor, mas que recebe
seu salário em uma única parcela, diferentemente dos demais funcionários.
Crie os métodos que achar necessário para professor;
Por fim, crie uma classe que instancia três objetos, uma Pessoa, um
Funcionário e um Professor. Insira o nome e sobrenome dos objetos
exibindo-os no console, além de preencher seus salários (de quem tiver)
exibindo as respectivas parcelas.
public class RegistraPessoa {
private String nome;
private String sobrenome;
private static int contadorPessoa;
// retorna o nome da pessoa
public String getNome(){
Return nome;
// define ou altera o nome da pessoa
public void setNome(String temp){
Nome = temp;
}
// retorna sobrenome
public String getSobrenome(){;
Return sobrenome;
// define ou altera o nome da pessoa
public void setSobrenome(String temp){
sobrenome = temp;
}
Primeiro gostaria de dar umas dicas sobre seu codigo :
No forum use as tags [ code ][ /code ] para deixar o codigo mais legivel de ser ler.
cuidado com a palavra return que voce escreveu em maisculo , o return eh escrito em minusculo
cuidado tambem com o abrir e fechar dos colchetes tem uns faltando para fechar
Agora vou colocar o codigo que voce postou e eu ja dei uma ajeitada nele com base nisso que citei acima
e criei o que faltava para completar o numero 1 do seu exercicio.
public class Pessoa {
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
// construtor com nome e sobrenome
public Pessoa(String nome, String sobrenome) {
setNome(nome);
setSobrenome(sobrenome);
}
// retorna o nome da pessoa
public String getNome() {
return nome;
}
// define ou altera o nome da pessoa
public void setNome(String temp) {
this.nome = temp;
}
// retorna sobrenome
public String getSobrenome() {
return sobrenome;
}
// define ou altera o nome da pessoa
public void setSobrenome(String temp) {
this.sobrenome = temp;
}
//retorna nome completo
public String getNomeCompleto(){
return this.nome + " " + this.sobrenome;
}
}
Tenta fazer o resto e posta que agente vai dando uma olhada.
To change this template, choose Tools | Template Manager
and open the template in the editor.
*/
package javaapplication21;
/**
*
@author tulipa
*/
public class Main {
/** Creates a new instance of Main */
public Main() {
}
/**
@param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
public class Pessoa {
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
// construtor com nome e sobrenome
public Pessoa(String nome, String sobrenome) {
setNome(nome);
setSobrenome(sobrenome);
}
// retorna o nome da pessoa
public String getNome() {
return nome;
}
// define ou altera o nome da pessoa
public void setNome(String temp) {
this.nome = temp;
}
// retorna sobrenome
public String getSobrenome() {
return sobrenome;
}
// define ou altera o nome da pessoa
public void setSobrenome(String temp) {
this.sobrenome = temp;
}
//retorna nome completo
public String getNomeCompleto(){
return this.nome + " " + this.sobrenome;
}
}
}
Olha voce nao pode jogar de jeito nenhum todo o codigo que te passei dentro do metodo main
Voce tem que enteder que isso que foi criado eh um JavaBean e ele eh uma classe que sera utilizado dentro do main
atraves de instancia de objetos e nao assim.
Faca o seguinte, recomendo voce entrar no site da Caelum e ler a apostila deles FJ-11 que te dara toda uma base para voce poder
criar o codigo que precisa.
oi, Daniel, baixei a apostila. Veja que sei que tenho muito que aprender na verdade estou por conta própria já consegui estalar o java netBeans, e fiz alguns programinha como média e coisinhas básicas tipo soma de dois números, testei array e vetores, astava indo bem até que começei a olhar OO. Tipo sei que tenho que criar classes, metodos e instancialos tipo chama-los. Exemplo: Pessoa = f1 new Pessoa();
é aí chama (aciona) o método que mostra a pessoa assim: f1.exibeDados(), esta chamada seria a partir de outra classe, para que funcione deveria criar uma classe exibe dados tipo:
//** exibe dados da pessoa
public void exibeDados() {
System.out.println (nome);
System.out.println(sobrenome);
Sei que tenho que fazer um curso, mas a grana tá curta, além do mais acredito que quando tiver dimdim vou aproveita muiiiiito, pois não sairei do zero…
Tô insistindo pq vc e o outro colega se mostraram atenciosos. No mais valeu a força.
desculpe os erros de português. Depois do bla-bla-bla de cima. Pergunto, tenho as classes, os metodos, sei instacia-los, mas se digito uma classe devo grava-la sem rodar, digitar o instanciamento é aí sim rodar shift+f6 e vê se funciona???
Ola, fico feliz que voce esta comecando a entender pois pelo que escreveu no post acima ja esta comecando a entender como funciona
para te ajudar bastante sobre sua duvida oque rodar e se eh so escrever a classe e depois fazer oque com ela? Vou te dar um exemplo pratico com base nesse seu programa para que voce entenda melhor ainda o funcionamento ok?
Esse aqui chama-se JavaBean eh uma classe que voce nao vai rodar ela, so vai deixar armazenada para ser usada:
public class Pessoa {
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
// construtor com nome e sobrenome
public Pessoa(String nome, String sobrenome) {
setNome(nome);
setSobrenome(sobrenome);
}
// retorna o nome da pessoa
public String getNome() {
return nome;
}
// define ou altera o nome da pessoa
public void setNome(String temp) {
this.nome = temp;
}
// retorna sobrenome
public String getSobrenome() {
return sobrenome;
}
// define ou altera o nome da pessoa
public void setSobrenome(String temp) {
this.sobrenome = temp;
}
//retorna nome completo
public String getNomeCompleto(){
return this.nome + " " + this.sobrenome;
}
}
Essa classe abaixo sim que voce vai rodar, ai voce me pergunta porque so essa ? porque eh nessa que esta o metodo main ele eh o coracao do seu programa eh por ela que comeca a sua aplicacao.
Repare que dentro dela eu uso a classe de cima na hora que eu faco Pessoa p = new Pessoa(); eu crio uma instancia da classe Pessoa nesse ponto do programa ai eu posso agora com ela criada chamar seus metodos, Assim :
public class Teste {
public static void main(String[] args) {
Pessoa p = new Pessoa();
p.setNome("Carlos");
p.setSobrenome("Moura");
//imprime nome + sobrenome
System.out.println(p.getNomeCompleto());
}
}
Ah mais uma coisa leia bem essa apostila que voce vai entender bem como comecar a programar da forma correta com Java.
To change this template, choose Tools | Template Manager
and open the template in the editor.
*/
package javaapplication25;
/**
*
@author Tulipa
*/
public class Main {
public class Pessoa {
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
// construtor com nome e sobrenome
public Pessoa(String nome, String sobrenome) {
setNome(nome);
setSobrenome(sobrenome);
}
// retorna o nome da pessoa
public String getNome() {
return nome;
}
// define ou altera o nome da pessoa
public void setNome(String temp) {
this.nome = temp;
}
// retorna sobrenome
public String getSobrenome() {
return sobrenome;
}
// define ou altera o nome da pessoa
public void setSobrenome(String temp) {
this.sobrenome = temp;
}
//retorna nome completo
public String getNomeCompleto(){
return this.nome + " " + this.sobrenome;
}
}
}
De uma olhada nesse trecho de codigo que voce postou, vou colocar aqui abaixo novamente :
public class Main {
public class Pessoa {
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
Agora veja o codigo que eu te passei como solucao, verfique se o seu esta igual.
Porque voce criou public class Main e dentro voce ainda criou public class Pessoa ?
Obs : Use as tags [code] para postar o codigo de forma legivel para que fique mais facil fazer sua leitura.
public class Pessoa {
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
// construtor com nome e sobrenome
public Pessoa(String nome, String sobrenome) {
setNome(nome);
setSobrenome(sobrenome);
}
// retorna o nome da pessoa
public String getNome() {
return nome;
}
// define ou altera o nome da pessoa
public void setNome(String temp) {
this.nome = temp;
}
// retorna sobrenome
public String getSobrenome() {
return sobrenome;
}
// define ou altera o nome da pessoa
public void setSobrenome(String temp) {
this.sobrenome = temp;
}
//retorna nome completo
public String getNomeCompleto(){
return this.nome + " " + this.sobrenome;
}
}
Desculpe entrar assim do nada no tópico, mas … uma dúvida.
Oque é e para que serve a palavra-chave super(); ??
Igual no exemplo acima, foi criado um constructor para a classe e colocado o código super();
E depois foi criado outro constructor ?? Para q outro constructor, não deveria ser somente 1 ??
vlw e desculpe a pergunta se foi meio idiota. rsrs
private String nome;
private String sobrenome;
// construtor default
public Pessoa() {
super();
}
// construtor com nome e sobrenome
public Pessoa(String nome, String sobrenome) {
setNome(nome);
setSobrenome(sobrenome);
}
// retorna o nome da pessoa
public String getNome() {
return nome;
}
// define ou altera o nome da pessoa
public void setNome(String temp) {
this.nome = temp;
}
// retorna sobrenome
public String getSobrenome() {
return sobrenome;
}
// define ou altera o nome da pessoa
public void setSobrenome(String temp) {
this.sobrenome = temp;
}
//retorna nome completo
public String getNomeCompleto(){
return this.nome + " " + this.sobrenome;
}
}
[/code]
Super(); serve para chamar o construtor da classe base. Ou em outras palavras da classe mãe quando a herança.
Se não houver herança, ele ira chamar o contrutor da classe Object(), isso por que por default todas as classe em java herdam de Object.
entendeu?
espero ter ajudado fuizzz
Desculpe entrar assim do nada no tópico, mas … uma dúvida.
Oque é e para que serve a palavra-chave super(); ??
Igual no exemplo acima, foi criado um constructor para a classe e colocado o código super();
E depois foi criado outro constructor ?? Para q outro constructor, não deveria ser somente 1 ??
vlw e desculpe a pergunta se foi meio idiota. rsrs[/quote]
A chamada super() chamara o construtor da superclasse no caso a classe Object, ele nao eh necessario pois essa chamada eh feita automaticamente na hora que a aplicacao roda. Coloquei para demostrar apenas seu uso.
Voce pode ter quantos construtores quiser.
Existem dois construtores exatamente como o colega disse acima pois no caso de voce quiser usar um ou outro voce tera essa opcao na hora de instanciar seus objetos.