java kickstart, day 2 semelhanças com linguagem c

25
Java Kickstart, day 2

Upload: internet

Post on 22-Apr-2015

116 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Java Kickstart, day 2 Semelhanças com linguagem C

Java Kickstart, day 2

Page 2: Java Kickstart, day 2 Semelhanças com linguagem C

Semelhanças com linguagem C

Page 3: Java Kickstart, day 2 Semelhanças com linguagem C

Strings

• Criação:String name = “Bond”;ou

String name = new String(“Bond”);

• Manipulaçãoname = name + “,James Bond”;

Page 4: Java Kickstart, day 2 Semelhanças com linguagem C

Strings

• Objetos podem ser transformados em String com a invocação do toString(), quando necessário:

int num = 15;System.out.println(“Valor” + 15);

Page 5: Java Kickstart, day 2 Semelhanças com linguagem C

Programas são feitos de classes

Page 6: Java Kickstart, day 2 Semelhanças com linguagem C

Composição das classes:

• Campos - Variáveis e objetos internos. São responsáveis pelo estado do objeto.

• Métodos - funções que operam sobre os campos para alterar o estado do objeto.

Page 7: Java Kickstart, day 2 Semelhanças com linguagem C

To infinite, and beyond...

class BuzzLightYear { public static void main(String[] args){ System.out.println("To infinite...");

System.out.println(“and beyond”); }}

Page 8: Java Kickstart, day 2 Semelhanças com linguagem C

Em detalhes• A classe anterior só declara um método: main

• main é um método especial em Java. É por onde as aplicações começam

• main tem como parâmetro um array do String, e é passado via linha de comando.

• System.out.println() : Observar a sintaxe objeto.objeto.método()

Page 9: Java Kickstart, day 2 Semelhanças com linguagem C

Mais classes e objetos

• Declarando mais uma classe:

class Point {public double x,y;

}

• Observar o acesso aos campos

Page 10: Java Kickstart, day 2 Semelhanças com linguagem C

Criando Objetos

• Sintaxe:Point lowerLeft = new Point();

• O uso de new chama o construtor do objeto. No caso, um construtor default é chamado

Page 11: Java Kickstart, day 2 Semelhanças com linguagem C

Alterando campos:

• Se o acesso é public, pode ser feito diretamente:

lowerLeft.x = 5.0; // O objeto precisalowerLeft.y = 6.0; // ser criado antes

• Não é recomendado liberar acesso public aos campos dos objetos

Page 12: Java Kickstart, day 2 Semelhanças com linguagem C

Controle de Acesso

• private: Acesso possível apenas de dentro da classe

• package : Sem declaração explícita, o acesso é permitido a código dentro do mesmo pacote. Não é permitido a classes filhas em outros pacotes.

• protected: Acesso permitido a código do mesmo pacote e código em classes filhas.

• public: Acesso permitido de qualquer lugar.

Page 13: Java Kickstart, day 2 Semelhanças com linguagem C

Métodos de acesso

• Recomenda-se o uso de métodos get e set para cada propriedade (onde o acesso é necessário) do objeto. As propriedades podem então ter acesso restrito.

Page 14: Java Kickstart, day 2 Semelhanças com linguagem C

Métodos de acesso e construtor

• O novo Point:class Point { private x, y; public void setX(int num){ x = num; }

public int getX(){ return x;

} //continua...

Page 15: Java Kickstart, day 2 Semelhanças com linguagem C

Métodos de acesso e construtor

public Point(int x, int y){

this.x = x; this.y = y;

} public Point(){ }// falta método de acesso a y}

Page 16: Java Kickstart, day 2 Semelhanças com linguagem C

Conceitos:

• Controle de acesso• Referência através de this• Métodos de acesso• Construtor não default• O construtor deve ser aproveitado para criar

um objeto válido

Page 17: Java Kickstart, day 2 Semelhanças com linguagem C

Criando subclasses

• A classe Point original:class Point(){

int x,y;public Point(int x, int y){

this.x = x;this.y = y;

}}

Page 18: Java Kickstart, day 2 Semelhanças com linguagem C

Criando subclasses

• A subclasse:class Pixel extends Point { Color color; public Pixel (Color color, int x, int y){ this.color = color;

super (x,y); }

}

Page 19: Java Kickstart, day 2 Semelhanças com linguagem C

Subclasses

• Observar o uso do método super()• super dá uma referência à classe mãe• Um objeto da classe filha pode ser usado

como objeto da classe mãe• Todas as classes descendem da classe Object

• Não é permitido fazer heranças múltiplas

Page 20: Java Kickstart, day 2 Semelhanças com linguagem C

Uma classe só pode herdar uma outra classe

Page 21: Java Kickstart, day 2 Semelhanças com linguagem C

Interfaces

• Úteis para declarar métodos sem suprir implementação

• Modelo de tratamento de evento usa extensivamente interfaces

Page 22: Java Kickstart, day 2 Semelhanças com linguagem C

Interfaces

• Exemplo:public interface ActionListener{void actionPerformed(ActionEvent e);

}

• As classes que implementarem ActionListener devem declarar um método actionPerformed() não vazio

Page 23: Java Kickstart, day 2 Semelhanças com linguagem C

Packages

• Evitam conflitos entre nomes e também servem como mecanismo de proteção

• Exemplo:class Date1 {

public static void main(String[] args){ java.util.Date now = new

java.util.Date(); System.out.println(now);

}}

Page 24: Java Kickstart, day 2 Semelhanças com linguagem C

Packages

• Poderia ter sido usado:import java.util.date;

class Date2 { public static void main(String[] args){

Date now = new Date(); System.out.println(now);

}}

Page 25: Java Kickstart, day 2 Semelhanças com linguagem C

Packages

• Convenção de nomenclatura: usar o nome do domínio na Internet invertido.

• Exemplos:package org.omg.CORBA.ORBPackage;

domínio: omg.org, pacote: CORBA.ORBPackagepackage br.usp.lsi.DBConnect;package com.sun.java.swing.plaf.*;