Escreva as seguintes classes:
a) Uma classe Pessoa com atributos nome e sobrenome. Cada um desses atributos deve ter métodos get e set. A classe Pessoa ainda deve ter um método chamado getNomeCompleto que não possui parâmetros de entrada e que retorna a concatenação do atributo nome com o atributo sobrenome. Além disso, a classe deve possuir um construtor sem parâmetros e um outro construtor que recebe como parâmetros o nome e o sobrenome da pessoa e altera respectivamente os atributos nome e sobrenome.

Passo 1

Beleza! Então, o que a questão está pedindo é para a gente criar uma classe chamada Pessoa com alguns atributos e métodos básicos. Estamos lidando com programação orientada a objetos, que é uma forma de organizar o código usando objetos que representam coisas do mundo real. Vamos precisar criar atributos para nome e sobrenome, métodos para acessar e modificar esses atributos (os famosos get e set), um método para juntar o nome completo e, claro, construtores para criar objetos dessa classe com ou sem informações iniciais.

Passo 2

Primeiro, vamos criar a estrutura básica da classe Pessoa. Em Java, isso começa com a palavra-chave public class seguida do nome da classe. Dentro das chaves, vamos declarar os atributos nome e sobrenome.
public class Pessoa {
    private String nome;
    private String sobrenome;
}
Aqui, usamos private para encapsular os atributos, ou seja, protegê-los de acessos diretos de fora da classe. Isso é uma boa prática na programação orientada a objetos.

Passo 3

Agora, vamos criar os métodos get para acessar os valores de nome e sobrenome. Um método get simplesmente retorna o valor de um atributo.
public String getNome() {
    return nome;
}

public String getSobrenome() {
    return sobrenome;
}
Esses métodos permitem que outras partes do programa vejam os valores dos atributos sem poder modificá-los diretamente.

Passo 4

Em seguida, vamos adicionar os métodos set para permitir que esses atributos sejam modificados de forma controlada.
public void setNome(String nome) {
    this.nome = nome;
}

public void setSobrenome(String sobrenome) {
    this.sobrenome = sobrenome;
}
O this é usado para referenciar o atributo da classe atual, diferenciando-o do parâmetro do método.

Passo 5

Agora, vamos criar o método getNomeCompleto, que vai juntar o nome e o sobrenome em uma única string. Esse método não recebe parâmetros e retorna a concatenação dos dois atributos.
public String getNomeCompleto() {
    return this.nome + " " + this.sobrenome;
}
Aqui, estamos simplesmente colocando um espaço entre o nome e o sobrenome para formar o nome completo.

Passo 6

Por último, vamos criar os construtores. O primeiro é sem parâmetros, que simplesmente cria uma pessoa sem definir o nome ou sobrenome inicialmente. O segundo recebe nome e sobrenome como parâmetros e os atribui aos atributos da classe.
// Construtor sem parâmetros
public Pessoa() {
    // Pode deixar vazio ou inicializar com valores padrão
}

// Construtor com parâmetros
public Pessoa(String nome, String sobrenome) {
    this.nome = nome;
    this.sobrenome = sobrenome;
}
Os construtores facilitam a criação de objetos Pessoa com ou sem informações iniciais.

Resposta

Pronto! A classe Pessoa completa fica assim:
public class Pessoa {
    private String nome;
    private String sobrenome;

    // Construtor sem parâmetros
    public Pessoa() {
        // Pode deixar vazio ou inicializar com valores padrão
    }

    // Construtor com parâmetros
    public Pessoa(String nome, String sobrenome) {
        this.nome = nome;
        this.sobrenome = sobrenome;
    }

    // Métodos get
    public String getNome() {
        return nome;
    }

    public String getSobrenome() {
        return sobrenome;
    }

    // Métodos set
    public void setNome(String nome) {
        this.nome = nome;
    }

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

    // Método para obter o nome completo
    public String getNomeCompleto() {
        return this.nome + " " + this.sobrenome;
    }
}
Com essa estrutura, você pode criar objetos Pessoa, acessar e modificar seus atributos e obter o nome completo facilmente!

Exercícios relacionados

Implemente:
c) Uma classe que contenha o método main que permita ao usuário digitar os dados de 5 carros. Adicione os objetos em um array de carro. Por fim exiba os dados dos 5 carros.
Escreva as seguintes classes:
c) Uma subclasse de Funcionario, chamada Professor. Todo professor recebe seu salário em uma única parcela. Assim, deve-se sobrecrever os métodos getSalarioPrimeiraParcela e getSalarioSegundaParcela. O método getSalarioPrimeiraParcela da classe Professor deve retornar o valor integral do salário do professor e o método getSalarioSegundaParcela do professor deve retornar o valor zero.
Implemente:
b) Uma subclasse de MeioDeTransporte chamada Carro. Carro deve ter os atributos marca (String), nome (String) e quilometragem (tipo int) e os métodos necessários para ler os atributos e alterá-los (get e set). A quilometragem não pode ser negativa, nem ultrapassar o valor 999999. A velocidade do Carro não pode ser negativa, nem ultrapassar 200.
Para cada um dos problemas abaixo, desenhe uma hierarquia de classes que as represente. Não deve-se implementar nenhum código.
a) Considere uma universidade com alunos. Os alunos podem ser de graduação e de pós-graduação. Os alunos de graduação podem ser calouros, intermediários ou formandos. Os alunos de pós-graduação podem ser de mestrado ou de doutorado.