Programa não sei fazer

Alguém poderia me ajudar com esse programa básico para alguns difícil para mim!

  1. 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;
  2. 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;
  3. 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;
  4. 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.

Ola,

Poste ai o que voce ja fez para que agente possa dar uma olhada.

Abraco.

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;
}

Ola,

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.

Flw, Um abraco.

[code]public class Pessoa {

private String nome;

private String sobrenome;

public Pessoa() {
	
}

public Pessoa(String nome, String sobrenome) {
	super();
	this.nome = nome;
	this.sobrenome = sobrenome;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getSobrenome() {
	return sobrenome;
}

public void setSobrenome(String sobrenome) {
	this.sobrenome = sobrenome;
}

public String getNomeCompleto(){
	
	return this.getNome()+" "+this.getSobrenome();
			
}

}
[/code]

ow daniel, foi mal, naum vi q vc já tinha respondido…

Magina kra, assim ele(a) aprende duas vezes :slight_smile:

Flw.

não tá rodando … digitei certinho…ajuda

estou usando o netbeans e veja que:
/*

  • Main.java
  • Created on 16 de Agosto de 2009, 20:20
  • 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;
}
}
}

}

Ola,

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.

Flw.

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.

Qualquer coisa eh so postar
Um abraco.

Olá, seguinte digitei pessoa…ok sem erros…
/*

  • Main.java
  • Created on 18 de Agosto de 2009, 10:08
  • 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;
}
}
}

porém ao digitar o complemento abaixo…deu erro…
cannot find symbol
symbol: class Pessoa
locatin: class javaapplication26.main

  • Main.java
  • Created on 18 de Agosto de 2009, 10:09
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

package javaapplication26;

/**
*

  • @author Tulipa
    */
    public class Main {

    public static void main(String[] args) {
    // TODO code application logic here
    Pessoa p = new Pessoa();
    p.setNome(“Carlos”);
    p.setSobrenome(“Moura”);

     //imprime nome + sobrenome   
     System.out.println(p.getNomeCompleto());   
    

    }
    }

Ola,

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.

Um Abraco.
Flw.

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

[quote=wesleysanches][code]
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;   
}   

}
[/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]

Você pode ter mais de um construtor para o caso de querer criar um objeto utilizando parâmetros diferentes.

Ex: Criar uma pessoa que tem nome e não tem sobrenome.

Ola wesleysanches,

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.

Flw.