Writing a class: fields, constructor, methods · Escrevendo uma classe: campos, construtor, métodos
Make your own type
- So far you used classes like
StringandMaththat Java gave you. - Now you will write your own class. A class is a plan for an object.
- An object holds data (its own values) and methods (things it can do).
Criar seu próprio tipo
- Até agora você usou classes como
StringeMathque o Java lhe deu. - Agora você vai escrever sua própria classe. Uma classe é um plano para um objeto.
- Um objeto guarda dados (seus próprios valores) e métodos (coisas que ele pode fazer).
Instance variables
- Data that each object keeps is stored in instance variables (also called fields).
- You declare them inside the class, but outside any method.
- Each object gets its own copy of these variables.
Variáveis de instância
- Dados que cada objeto guarda são armazenados em variáveis de instância (também chamadas de campos).
- Você as declara dentro da classe, mas fora de qualquer método.
- Cada objeto recebe sua própria cópia dessas variáveis.
public class Dog {
String name; // instance variable
int age; // instance variable
}
A constructor
- A constructor sets up a new object. It runs when you write
new. - It has the same name as the class and no return type (not even
void). - Use the word
thisto mean "this object's own variable".
Um construtor
- Um construtor configura um novo objeto. Ele roda quando você escreve
new. - Ele tem o mesmo nome da classe e nenhum tipo de retorno (nem mesmo
void). - Use a palavra
thispara significar "a própria variável deste objeto".
public class Dog {
String name;
int age;
// Constructor: runs when we make a new Dog
public Dog(String name, int age) {
this.name = name; // this.name is the field; name is the parameter
this.age = age;
}
}
Instance methods
- An instance method is an action an object can do.
- It can read and change the object's own instance variables.
- You call it on an object with a dot:
myDog.speak().
Métodos de instância
- Um método de instância é uma ação que um objeto pode fazer.
- Ele pode ler e alterar as próprias variáveis de instância do objeto.
- Você o chama em um objeto com um ponto:
myDog.speak().
public class Dog {
String name;
int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
// Instance method: returns a sentence about this dog
public String describe() {
return this.name + " is " + this.age;
}
}
Make and use an object
- Use
new ClassName(...)to build an object. This calls the constructor. - Store it in a variable whose type is the class name.
- Then call its methods with a dot.
Criar e usar um objeto
- Use
new ClassName(...)para construir um objeto. Isso chama o construtor. - Armazene-o em uma variável cujo tipo seja o nome da classe.
- Depois chame seus métodos com um ponto.
public class Main {
public static void main(String[] args) {
Dog d = new Dog("Rex", 4);
System.out.println(d.describe()); // Rex is 4
}
}
class Dog {
String name;
int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public String describe() {
return this.name + " is " + this.age;
}
}
Why this?
- A parameter and a field can have the same name (like
name). - Inside the constructor,
namemeans the parameter;this.namemeans the field. thisalways means the object the method was called on.
Por que this?
- Um parâmetro e um campo podem ter o mesmo nome (como
name). - Dentro do construtor,
namesignifica o parâmetro;this.namesignifica o campo. thissempre significa o objeto no qual o método foi chamado.
Common mistakes
- A constructor has no return type and matches the class name.
- Use
this.fieldto tell a field from a parameter of the same name.
Erros comuns
- Um construtor não tem tipo de retorno e corresponde ao nome da classe.
- Use
this.fieldpara distinguir um campo de um parâmetro do mesmo nome.
Now you try
- Each task gives you a class skeleton with a TODO. Fill it in so it compiles and works.
- A hidden Harness builds your object and checks the results.
- Press Run to compile, then Check answer.
Agora você tenta
- Cada tarefa fornece um esqueleto de classe com um TODO. Preencha-o para que compile e funcione.
- Um Harness oculto constrói seu objeto e verifica os resultados.
- Pressione Run para compilar, depois Check answer.
Complete the Counter class. It has an int field · campo count that starts at 0. increment() adds 1 to it. getCount() returns the current value. · Complete a classe Counter. Ela tem um campo int count que começa em 0. increment() adiciona 1 a ele. getCount() retorna o valor atual.
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
Complete the Rectangle class. The constructor takes width w and height h and stores them. area() returns width times height. perimeter() returns 2 times (width plus height). · Complete a classe Rectangle. O construtor recebe largura w e altura h e os armazena. area() retorna largura vezes altura. perimeter() retorna 2 vezes (largura mais altura).
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
Complete the Greeter class. The constructor takes a String name and stores it in the field name. greet() returns the text Hello, followed by the name and a ! (for "Ana" it returns Hello, Ana!). · Complete a classe Greeter. O construtor recebe um String name e o armazena no campo name. greet() retorna o texto Hello, seguido pelo nome e um ! (para "Ana" ele retorna Hello, Ana!).
Click Run to see the output here. · Clique em Executar para ver a saída aqui.