Java da entrada à proficiência - classes e objetos (1)

0. Classes e Objetos

1. Visão geral da orientação a objetos

A Programação Orientada a Objetos Java (OOP) é ​​um paradigma de programação poderoso baseado em conceitos básicos como objetos, classes, encapsulamento, herança e polimorfismo. Este paradigma de programação torna o código mais modular, sustentável, reutilizável e extensível.

1.1 Objetos e classes

Em Java, tudo é um objeto. Um objeto é a unidade básica de um programa que representa uma entidade ou conceito no mundo real. Por exemplo, podemos considerar um objeto carro simples:

class Car {
    String color;
    int speed;
    
    void start() {
        System.out.println("汽车启动了!");
    }
    
    void accelerate() {
        System.out.println("汽车加速中...");
    }
}

No exemplo, definimos uma Carclasse chamada que possui duas propriedades , cor ( color) e velocidade ( ), e dois métodos ( e ). Esta classe descreve as características e comportamento do carro.speedstart()accelerate()

1.2 Embalagem

O encapsulamento é um conceito-chave em OOP, que se refere ao encapsulamento de dados e métodos dentro de uma classe para proteger a segurança dos dados. Somente métodos de classe podem acessar e modificar dados de classe, código externo não pode acessar ou modificar dados diretamente. Isso melhora a capacidade de manutenção e a segurança do código. Vejamos um exemplo encapsulado:

class BankAccount {
    private double balance;
    
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
    
    public double getBalance() {
        return balance;
    }
}

No exemplo, balancea propriedade é declarada como private, o que significa que apenas BankAccountmétodos da classe podem acessá-la. O código externo deve operar e obter saldos de contas através de métodos públicos ( deposit()e ).getBalance()

1.3 Herança

Herança é outro conceito-chave de OOP, que permite que uma classe (subclasse/classe derivada) herde as propriedades e métodos de outra classe (classe pai/classe base). As subclasses podem reutilizar o código da classe pai e adicionar suas próprias propriedades e métodos específicos. Isso ajuda na reutilização de código e na construção de hierarquias. Os exemplos são os seguintes:

class Animal {
    void eat() {
        System.out.println("动物吃东西");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("狗在叫");
    }
}

No exemplo, Animala classe define eat()métodos e Doga classe herda Animala classe e adiciona seus próprios bark()métodos. Isso permite que Doga classe chame eat()métodos e também bark()métodos.

1.4 Polimorfismo

Polimorfismo é outro conceito poderoso de OOP, que permite que objetos de diferentes classes respondam de maneira diferente à mesma mensagem (chamada de método). O polimorfismo permite que um objeto execute comportamentos diferentes dependendo do seu tipo real. Os exemplos são os seguintes:

class Shape {
    void draw() {
        System.out.println("绘制形状");
    }
}

class Circle extends Shape {
    @Override
    void draw() {
        System.out.println("绘制圆形");
    }
}

class Square extends Shape {
    @Override
    void draw() {
        System.out.println("绘制正方形");
    }
}

No exemplo, Shapea classe define draw()métodos, e ambas Circleas Squareclasses e herdam Shapea classe e substituem draw()os métodos. Isso significa que você pode criar objetos e chamar seus métodos, que executarão diferentes comportamentos de desenho dependendo do tipo real Shape.CircleSquaredraw()

2. Classe

As classes são um dos blocos básicos de construção da programação orientada a objetos. As classes definem a estrutura e o comportamento dos objetos. Vamos ter uma compreensão profunda do conceito de classes, incluindo variáveis ​​de membro, métodos de membro, modificadores de permissão, variáveis ​​locais, o escopo efetivo de variáveis ​​locais, a palavra-chave this e o construtor da classe.

2.1 Estrutura básica das aulas

A estrutura básica de uma classe geralmente inclui as seguintes partes:

public class ClassName {
    // 成员变量(属性)
    dataType variable1;
    dataType variable2;
    
    // 构造方法
    public ClassName(parameters) {
        // 构造方法的初始化代码
    }
    
    // 成员方法
    returnType methodName(parameters) {
        // 方法体
    }
    
    // 其他成员方法
}

1. Variáveis ​​de membro (propriedades):

  • Variáveis ​​de membro são atributos de uma classe e são usadas para armazenar informações de estado de um objeto.
  • Define as características ou dados de uma classe.

2. Método de construção:

  • Um construtor é um método especial usado para inicializar propriedades de um objeto.
  • Chamado automaticamente ao criar um objeto, geralmente usado para realizar as operações de inicialização necessárias.
  • O nome do construtor é igual ao nome da classe.

3. Métodos de membros:

  • Os métodos membros definem as operações que um objeto pode executar.
  • Define o comportamento ou operação de uma classe.

2.2 Variáveis ​​de membro

Variáveis-membro são propriedades de uma classe que armazena informações de estado sobre um objeto. Ao declarar variáveis-membro em uma classe, você pode usar diferentes modificadores de permissão, como private, public, protectedetc., para controlar sua acessibilidade. Por exemplo:

public class Student {
    // 成员变量
    public String name; // 公共成员变量
    private int age;    // 私有成员变量
    protected double gpa; // 受保护的成员变量
}

2.3 Método de construção

Construtores são métodos especiais usados ​​para inicializar objetos. Cada classe pode ter um ou mais construtores, sobrecarregados com diferentes listas de parâmetros. O nome do construtor deve ser igual ao nome da classe, não possui valor de retorno.

public class Student {
    private String name;
    private int age;

    // 构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

No exemplo, Studenta classe possui um construtor que aceita nome e idade como parâmetros e é utilizado para inicializar as propriedades do objeto aluno.

2.4 Métodos de membros

Os métodos membros definem as operações que um objeto pode executar. Eles são usados ​​para definir o comportamento ou operações de uma classe. A declaração de um método membro inclui o tipo de retorno, o nome do método, a lista de parâmetros e o corpo do método.

public class Calculator {
    // 成员方法:加法
    public int add(int num1, int num2) {
        return num1 + num2;
    }

    // 成员方法:除法
    public double divide(double dividend, double divisor) {
        if (divisor != 0) {
            return dividend / divisor;
        } else {
            System.out.println("除数不能为零");
            return Double.NaN; // 返回NaN表示不是一个数字
        }
    }
}

No exemplo, Calculatora classe define dois métodos membros, add()e divide(), para realizar operações de adição e divisão, respectivamente.

2.5 Modificadores de permissão

Java fornece diferentes modificadores de permissão para controlar a acessibilidade de variáveis ​​de membros e métodos de membros:

  • public: Pode ser acessado em qualquer lugar.
  • private: Só pode ser acessado dentro da turma.
  • protected: só pode ser acessado dentro do mesmo pacote ou subclasse.
  • Padrão (sem modificador): acessível apenas dentro do mesmo pacote.

2.6 Variáveis ​​locais e escopo válido

Variáveis ​​locais são variáveis ​​temporárias declaradas dentro de um método ou bloco de código. Seu escopo é limitado dentro do bloco de código em que são declarados. Por exemplo:

public class Example {
    public void someMethod() {
        int x = 10; // 局部变量,只能在someMethod()方法内部访问
    }
}

2.7 esta palavra-chave

thisA palavra-chave é usada para se referir à referência do objeto atual. Pode ser usado para distinguir variáveis ​​de membro de variáveis ​​locais, especialmente em métodos de membro. Por exemplo:

public class Person {
    private String name;

    public void setName(String name) {
        // 使用this关键字来引用成员变量
        this.name = name;
    }
}

Nos exemplos, use this.namepara se referir a variáveis ​​de membro para distinguir variáveis ​​de membro de parâmetros de método name.

Acho que você gosta

Origin blog.csdn.net/m0_53918860/article/details/132790055
Recomendado
Clasificación