PRÁTICA 2 – ORIENTAÇÃO A OBJETO BÁSICA
Objetivo:
Utilizar o código java de Android para entender orientação a objeto básica.
Introdução
A orientação a objetos é um modelo de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. Será abordado aqui:
- Objeto: é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da classe Humanos: João, José, Marla
- Classe: representa um conjunto de objetos com características afins.
- Atributo: são características de um objeto. Basicamente a estrutura de dados que vai representar a classe. Exemplos: Funcionário: nome, endereço, telefone, CPF; Carro: nome, marca, ano, cor; Livro: autor, editora, ano.
- Método: definem as habilidades dos objetos. Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método de um latido.
- Encapsulamento: consiste na separação de aspectos internos e externos de um objeto.
- Overload: modificar um método original de uma classe.
Tarefa:
Compilar e entender os programas abaixo. Lembrar de criar um “textView” com id “textView”.
Programa 1 – Comando findViewById:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { public String nome; //Atributo público da classe private TextView textView; //Atributo privado da classe @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); nome = "Android"; textView = (TextView) findViewById(R.id.textView); //CASTING e findViewById textView.setText(nome); } } |
Programa 2 – Criando TextView durante a execução (COLOQUE o RelativeLayout do XML com id “layout”):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { RelativeLayout relativeLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); relativeLayout = (RelativeLayout) findViewById(R.id.layout); TextView textView = new TextView(this); textView.setText("OUTRO TEXTO"); relativeLayout.addView(textView); } } |
Programa 3 – Modificando o textView com setters and getters:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { RelativeLayout relativeLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); relativeLayout = (RelativeLayout) findViewById(R.id.layout); TextView textView = new TextView(this); textView.setText("CEFET "); relativeLayout.addView(textView); for (int t=1;t<400;t++) { textView.setText(textView.getText()+"CEFET "); } } } |
Programa 4 – Modificando o textView com setters and getters em um método:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { RelativeLayout relativeLayout; TextView textView; public void setTextNumber(int number) { for (int t=0;t<number;t++) { textView.setText(textView.getText()+"CEFET "); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); relativeLayout = (RelativeLayout) findViewById(R.id.layout); textView = new TextView(this); relativeLayout.addView(textView); setTextNumber(1000); } } |
Desafio: Crie um método que modifique a posição de um textView no layout:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { RelativeLayout relativeLayout; TextView textView; public void setTextPosition(int x, int y) { textView.setX(x); textView.setY(y); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); relativeLayout = (RelativeLayout) findViewById(R.id.layout); textView = new TextView(this); textView.setText("TESTE POSICAO"); relativeLayout.addView(textView); setTextPosition(100,100); } @Override public boolean onTouchEvent(MotionEvent event) { setTextPosition((int)textView.getX()+1,(int)textView.getY()+1); return super.onTouchEvent(event); } } |