- Objeto em Java
- Aula em Java
- Variável de instância em Java
- Método em Java
- Exemplo de objeto e classe que mantém os registros dos alunos
- Objeto anônimo
Nesta página, aprenderemos sobre objetos e classes Java. Na técnica de programação orientada a objetos, projetamos um programa usando objetos e classes.
Um objeto em Java é uma entidade física e também lógica, enquanto uma classe em Java é apenas uma entidade lógica.
O que é um objeto em Java
Uma entidade que possui estado e comportamento é conhecida como objeto, por exemplo, cadeira, bicicleta, marcador, caneta, mesa, carro, etc. Pode ser físico ou lógico (tangível e intangível). O exemplo de objeto intangível é o sistema bancário.
Um objeto possui três características:
Por exemplo, Pen é um objeto. Seu nome é Reynolds; a cor é branca, conhecida como seu estado. É usado para escrever, então escrever é o seu comportamento.
Um objeto é uma instância de uma classe. Uma classe é um modelo ou projeto a partir do qual os objetos são criados. Portanto, um objeto é a instância (resultado) de uma classe.
Definições de objetos:
- Um objeto é uma entidade do mundo real .
- Um objeto é uma entidade de tempo de execução .
- O objeto é uma entidade que tem estado e comportamento .
- O objeto é uma instância de uma classe .
O que é uma classe em Java
Uma classe é um grupo de objetos que possuem propriedades comuns. É um modelo ou projeto a partir do qual os objetos são criados. É uma entidade lógica. Não pode ser físico.
Uma classe em Java pode conter:
Sintaxe para declarar uma classe:
class { field; method; }
Variável de instância em Java
Uma variável criada dentro da classe, mas fora do método, é conhecida como variável de instância. A variável de instância não obtém memória em tempo de compilação. Ele obtém memória em tempo de execução quando um objeto ou instância é criado. É por isso que é conhecida como variável de instância.
Método em Java
Em Java, um método é como uma função usada para expor o comportamento de um objeto.
Vantagem do Método
- Reutilização de código
- Otimização de código
nova palavra-chave em Java
A palavra-chave new é usada para alocar memória em tempo de execução. Todos os objetos obtêm memória na área de memória Heap.
Exemplo de objeto e classe: main dentro da classe
Neste exemplo, criamos uma classe Student que possui dois membros de dados id e nome. Estamos criando o objeto da classe Student através da nova palavra-chave e imprimindo o valor do objeto.
Aqui, estamos criando um método main() dentro da classe.
Arquivo: Aluno.java
//Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id;//field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student();//creating an object of Student //Printing values of the object System.out.println(s1.id);//accessing member through reference variable System.out.println(s1.name); } }Teste agora
Saída:
0 null
Exemplo de objeto e classe: main fora da classe
No desenvolvimento em tempo real, criamos classes e utilizamos de outra classe. É uma abordagem melhor que a anterior. Vamos ver um exemplo simples, onde temos o método main() em outra classe.
ilhota java
Podemos ter várias classes em diferentes arquivos Java ou em um único arquivo Java. Se você definir várias classes em um único arquivo fonte Java, é uma boa ideia salvar o nome do arquivo com o nome da classe que possui o método main().
Arquivo: TestStudent1.java
//Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } }Teste agora
Saída:
0 null
3 maneiras de inicializar objeto
Existem 3 maneiras de inicializar objetos em Java.
- Por variável de referência
- Por método
- Por construtor
1) Exemplo de objeto e classe: inicialização por referência
Inicializar um objeto significa armazenar dados no objeto. Vejamos um exemplo simples onde inicializaremos o objeto através de uma variável de referência.
Arquivo: TestStudent2.java
class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name='Sonoo'; System.out.println(s1.id+' '+s1.name);//printing members with a white space } }Teste agora
Saída:
101 Sonoo
Também podemos criar vários objetos e armazenar informações neles por meio de variáveis de referência.
Arquivo: TestStudent3.java
class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name='Sonoo'; s2.id=102; s2.name='Amit'; //Printing data System.out.println(s1.id+' '+s1.name); System.out.println(s2.id+' '+s2.name); } }Teste agora
Saída:
101 Sonoo 102 Amit
2) Exemplo de objeto e classe: inicialização através de método
Neste exemplo, estamos criando os dois objetos da classe Student e inicializando o valor desses objetos invocando o método insertRecord. Aqui, exibimos o estado (dados) dos objetos invocando o método displayInformation().
Arquivo: TestStudent4.java
class Student{ int rollno; String name; void insertRecord(int r, String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+' '+name);} } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,'Karan'); s2.insertRecord(222,'Aryan'); s1.displayInformation(); s2.displayInformation(); } }Teste agora
Saída:
111 Karan 222 Aryan
Como você pode ver na figura acima, o objeto obtém a memória na área de memória heap. A variável de referência refere-se ao objeto alocado na área de memória heap. Aqui, s1 e s2 são variáveis de referência que se referem aos objetos alocados na memória.
3) Exemplo de objeto e classe: inicialização através de um construtor
Aprenderemos sobre construtores em Java mais tarde.
Exemplo de objeto e classe: Funcionário
Vejamos um exemplo em que mantemos registros de funcionários.
Arquivo: TestEmployee.java
class Employee{ int id; String name; float salary; void insert(int i, String n, float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+' '+name+' '+salary);} } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,'ajeet',45000); e2.insert(102,'irfan',25000); e3.insert(103,'nakul',55000); e1.display(); e2.display(); e3.display(); } }Teste agora
Saída:
101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0
Exemplo de objeto e classe: retângulo
É dado outro exemplo que mantém os registros da classe Rectangle.
Arquivo: TestRectangle1.java
class Rectangle{ int length; int width; void insert(int l, int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } }Teste agora
Saída:
55 45
Quais são as diferentes maneiras de criar um objeto em Java?
Existem muitas maneiras de criar um objeto em java. Eles são:
- Por nova palavra-chave
- Pelo método newInstance()
- Pelo método clone()
- Por desserialização
- Pelo método de fábrica etc.
Aprenderemos essas maneiras de criar objetos mais tarde.
Objeto anônimo
Anônimo significa simplesmente sem nome. Um objeto que não tem referência é conhecido como objeto anônimo. Ele pode ser usado apenas no momento da criação do objeto.
Se você precisar usar um objeto apenas uma vez, um objeto anônimo é uma boa abordagem. Por exemplo:
new Calculation();//anonymous object
Chamando método através de uma referência:
Calculation c=new Calculation(); c.fact(5);
Chamando método através de um objeto anônimo
new Calculation().fact(5);
Vamos ver o exemplo completo de um objeto anônimo em Java.
class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact="fact*i;" } system.out.println('factorial is '+fact); public static void main(string args[]){ new calculation().fact(5); calling method with anonymous object < pre> <p>Output:</p> <pre> Factorial is 120 </pre> <a id="objectbyonetype"></a> <h3>Creating multiple objects by one type only</h3> <p>We can create multiple objects by one type only as we do in case of primitives.</p> <p>Initialization of primitive variables:</p> <pre> int a=10, b=20; </pre> <p>Initialization of refernce variables:</p> <pre> Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects </pre> <p>Let's see the example:</p> <pre> //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> 55 45 </pre> <h3>Real World Example: Account</h3> <p>File: TestAccount.java</p> <pre> //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+' deposited'); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println('insufficient balance'); }else{ amount="amount-amt;" system.out.println(amt+' withdrawn'); } method to check the balance of account void checkbalance(){system.out.println('balance is: '+amount);} display values an object display(){system.out.println(acc_no+' '+name+' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,'ankit',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){></pre></=n;i++){>
Criando vários objetos por apenas um tipo
Podemos criar vários objetos por um tipo apenas, como fazemos no caso de primitivos.
atalhos do linux
Inicialização de variáveis primitivas:
int a=10, b=20;
Inicialização de variáveis de referência:
Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects
Vejamos o exemplo:
//Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } }Teste agora
Saída:
55 45
Exemplo do mundo real: conta
Arquivo: TestAccount.java
//Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+' deposited'); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println(\'insufficient balance\'); }else{ amount="amount-amt;" system.out.println(amt+\' withdrawn\'); } method to check the balance of account void checkbalance(){system.out.println(\'balance is: \'+amount);} display values an object display(){system.out.println(acc_no+\' \'+name+\' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,\'ankit\',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){>=n;i++){>