Em Java, classes e objetos formam a base da Programação Orientada a Objetos (OOP). Eles ajudam a modelar entidades do mundo real e a organizar o código de forma estruturada.
- Uma classe é um modelo usado para criar objetos que compartilham propriedades e comportamentos comuns.
- Um objeto é uma instância de uma classe. Representa uma entidade específica criada a partir do modelo de classe.
Por exemplo Dog é uma classe Tommy é um objeto dessa classe.
Classes e objetos (aqui Dog é a classe e Bobby é o objeto)Classe Java
Uma classe é um modelo que define dados e comportamento de objetos. Ele agrupa campos e métodos relacionados em uma única unidade. A memória para seus membros é alocada somente quando um objeto é criado.
- Atua como modelo para criar objetos com estrutura compartilhada.
- Não ocupa memória para campos até a instanciação.
- Pode conter campos, métodos, construtores, classes e interfaces aninhadas.
class Student { int id; String n; public Student(int id String n) { this.id = id; this.n = n; } } public class Main { public static void main(String[] args) { Student s1 = new Student(10 'Alice'); System.out.println(s1.id); System.out.println(s1.n); } }
Saída
10 Alice
Objetos Java
Um objeto é uma instância de uma classe criada para acessar seus dados e operações. Cada objeto mantém seu próprio estado.
- Estado : Valores armazenados em campos.
- Comportamento : Ações definidas através de métodos.
- Identidade : Distingue um objeto de outro.
Os objetos refletem itens do mundo real, como produto do cliente ou círculo. Objetos não primitivos são armazenados na pilha enquanto suas referências permanecem na pilha.
lista java de
Objetos Java (exemplo de cães)Instanciação de objetos
A criação de um objeto é conhecida como instanciação. Todas as instâncias de uma classe compartilham estrutura e comportamento enquanto armazenam diferentes valores de estado.
Declaração de objeto JavaDeclaração:
rede e Internet
Cachorro tufado;
Isso apenas declara uma referência. O objeto não é criado e a referência é nula.
Inicialização:
tuffy = novo Cachorro('Tuffy' 'Papillon' 5 'Branco');
InicializaçãoO novo operador aloca memória e invoca o construtor.
Exemplo: Definindo e Usando uma Classe
Javapublic class Dog { String name; String breed; int age; String color; public Dog(String name String breed int age String color) { this.name = name; this.breed = breed; this.age = age; this.color = color; } public String getName() { return name; } public String getBreed() { return breed; } public int getAge() { return age; } public String getColor() { return color; } @Override public String toString() { return 'Name is: ' + name + 'nBreed age and color are: ' + breed + ' ' + age + ' ' + color; } public static void main(String[] args) { Dog tuffy = new Dog('tuffy' 'papillon' 5 'white'); System.out.println(tuffy); } }
Saída
Name is: tuffy Breed age and color are: papillon 5 white
Observação: Cada classe possui pelo menos um construtor. Se nenhum for definido, Java fornece um construtor padrão sem argumentos que chama o construtor pai.
Inicialize o objeto usando método/função
Javapublic class Geeks { static String name; static float price; static void set(String n float p) { name = n; price = p; } static void get() { System.out.println('Software name is: ' + name); System.out.println('Software price is: ' + price); } public static void main(String[] args) { Geeks.set('Visual Studio' 0.0f); Geeks.get(); } }
Saída
Software name is: Visual Studio Software price is: 0.0
Maneiras de criar objetos em Java
Java oferece suporte a quatro abordagens padrão.
1. Usando nova palavra-chave
Maneira mais direta de criar um objeto.
Java// creating object of class Test Test t = new Test();
2. Usando reflexão
Usado para carregamento dinâmico de classes, conforme visto em frameworks como Spring.
caractere.compare javaJava
class Student { public Student() {} } public class Main { public static void main(String[] args) { try { Class> c = Class.forName('Student'); Student s = (Student) c.getDeclaredConstructor().newInstance(); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } } }
Saída
Student@1dbd16a6
3. Usando o método clone()
clone() cria uma cópia de um objeto existente. A classe deve implementar Cloneable.
Javaclass Geeks implements Cloneable { String name = 'GeeksForGeeks'; @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } public static void main(String[] args) { try { Geeks g1 = new Geeks(); Geeks g2 = (Geeks) g1.clone(); System.out.println(g2.name); } catch (Exception e) { e.printStackTrace(); } } }
Saída
GeeksForGeeks
4. Usando desserialização
A desserialização é uma técnica de leitura de um objeto do estado salvo em um arquivo. O objeto é recriado a partir de um fluxo de bytes armazenado.
Consulte Serialização/desserialização em Java .
Javaimport java.io.*; class Student implements Serializable { private String name; public Student(String name) { this.name = name; } public String toString() { return 'Student: ' + name; } } public class Main { public static void main(String[] args) { try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream('student.ser'))) { out.writeObject(new Student('Alice')); } catch (IOException e) { e.printStackTrace(); } try (ObjectInputStream in = new ObjectInputStream(new FileInputStream('student.ser'))) { Student s = (Student) in.readObject(); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } } }
Saída
Student: Alice
Uma única referência pode apontar para objetos diferentes em momentos diferentes.
JavaTest test = new Test(); test = new Test();
Na herança é comum usar uma referência pai para objetos filhos.
JavaAnimal obj = new Dog(); obj = new Cat();
Objetos não referenciados tornam-se elegíveis para coleta de lixo.
c# contém string
Objetos Anônimos
Objetos anônimos são criados sem referência e usados imediatamente para operações únicas.
- Nenhuma variável de referência: não é possível reutilizar o objeto.
- Criado e usado economiza memória instantaneamente para tarefas de curta duração.
- Comum no tratamento de eventos (por exemplo, cliques em botões).
new Dog('Max' 'Labrador' 3 'Black').getName();
Comum no tratamento de eventos de UI.
Criar questionário