De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de...
Transcript of De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de...
![Page 1: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/1.jpg)
1 de 32
Linguagens de Programação Orientadas a Objetos
Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa
Marco [email protected]
Colaboração: Prof. Ricardo Santos
Aula 07 - Manipulação de Arrays
http://www.ufpa.br/sampaio/bd2003/lpoo
Marco Fagundes
![Page 2: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/2.jpg)
2 de 32
Roteiro
Revisão dos Objetos e Meta do Módulo de Fundamentos Revisão do Básico de Java e Delphi
• Estrutura de Programas• Tratamento de Operações• Declaração de Variáveis• Tipos de Dados e Estruturas de Controle
Declarando e Construindo Arrays
![Page 3: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/3.jpg)
3 de 32
Módulo de Fundamentos
Módulo de Fundamentos• Objetivo: Apresentar conceitos básicos e avançados da
orientação a objetos, os ambientes Java e Delphi e sua utilização no desenvolvimento de GUIs
• Meta: Desenvolver uma aplicação (Java ou Delphi) com uma GUI oferecendo as operações básicas de cadastro (incluir, excluir, alterar e consultar) utilizando uma estrutura de dados para armazenar objetos
![Page 4: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/4.jpg)
4 de 32
Módulo de Fundamentos
Conteúdo• Conceitos da Orientação a Objetos• Ambiente JDK e Delphi• Construção de GUI em Java e Delphi• Programação Orientada a Eventos• Estrutura de Dados (Array) e Tipo String• Classe, Objeto, Atributos e Métodos• Compartilhamento de Recursos (Dados e Operações)
entre Classes• Recursos Avançados de GUI e Criação de Objetos
O que foi visto??
![Page 5: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/5.jpg)
5 de 32
Módulo de Fundamentos
Duração: 13 Aulas• Início: 01/04/2003• Término: 29/04/2003
Datas Importantes• Entrega do 1º Exercício: 23/04/2003• Exame Escrito:29/04/2003• Entrega da 1ª Etapa do Projeto Final: 06/05/2003
![Page 6: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/6.jpg)
6 de 32
Destaques da Aula 1
Qualidade de Software• Atributos de qualidade: Corretude, Eficiência,
Manutenibilidade Portabilidade, Reusabilidade, Robustez, Extensibilidade, Integridade e Usabilidade
• Os fatores extensibilidade e reusabilidade estão diretamente relacionados à manutenção de sistemas. Estima-se que 70% do custo de software corresponde à manutenção
Paradigmas de Programação• Imperativo• Orientado a Objetos• Funcional • Lógico
Linguagens OO: Formalmente, para ser considerada uma linguagem OO, esta precisa implementar quatro conceitos importantes: abstração, encapsulamento, herança e polimorfismo
![Page 7: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/7.jpg)
7 de 32
Destaques da Aula 2 - Estrutura de Programas Java
class <nome> { <declarações>; public static void main (<parametro>) { <declarações>; <instruções>; }//fim main
}// fim class
Unit Delphi
interface uses | const | type | var
implementation uses | const | type | var
initialization<instruções>;
finalization<instruções>;
end.
Somente se a classe for
executável
![Page 8: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/8.jpg)
8 de 32
Destaques da Aula 2 - Operações Java
class <nome> { <declarações>;
Tipo_Retorno Nome_Método (<param>) { <declarações>; <instruções>; }// fim Nome_Método ...(main - caso deseje execução) }// fim class
Unit Delphi
interface uses | const | type | var
public procedure <nome>(<param>); function <nome>(<param>): tipo;
implementation uses | const | type | var
<definição_procedure>;
<definição_function>;
...(initialization, Finalization)
end.
Se o Tipo_Retorno for void então o método é similar a um procedimento. Caso contrário o método se parece com uma função, necessitando do valor de retorno. Assim uma instrução obrigatória é:return <resultado>;
Shift+ Ctrl + C constroi o corpo do procedimento/função.
![Page 9: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/9.jpg)
9 de 32
Destaques da Aula 2 - Operações Java
class <nome> { <declarações>;
Tipo_Retorno Nome_Método (<param>) { <declarações>; <instruções>; }// fim Nome_Método ...(main - caso deseje execução) }// fim class
Unit Delphi
interface uses | const | type | var
public ...;implementation uses | const | type | var
procedure <nome_classe>.<nome>(<param>); var ...begin <instruções>;end;
function <nome_classe>.<nome>(<param>): tipo; var ...begin <instruções>; result:= <resultado>;end;...end.
Variáveis de Instância
Variáveis de Locais
Variáveis Globais
Variáveis Locais
![Page 10: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/10.jpg)
10 de 32
Destaques da Aula 2 - Exemplo de Operações Java
class <nome> { <declarações>;
void exibeMsg ( ) { System.out.println (‘Exemplo Msg’); }// fim
int somarVal (int v1, int v2); { return v1 + v2; }// fim
...(main - caso deseje execução) }// fim class
Unit Delphi
interface uses | const | type | var
implementation uses | const | type | var
procedure <nome_classe>.exibeMsg;begin showMessage(‘Exemplo Msg’);end;
function <nome-classe>somarVal(v1,v2:integer):integer;begin result:=v1+v2;end;
...(initialization, Finalization)
end.
![Page 11: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/11.jpg)
11 de 32
Destaque da Aula 2 - Testando Operações em Java
class Teste { void exibeMsg (String pMsg ) { System.out.println (pMsg); } int somarVal (int v1, int v2) { return v1 + v2; }/ public static void main(String[ ] args) { Teste t = new Teste(); t.exibeMsg(‘Exemplo Msg’); System.out.println (t.somarVal(50,70)); } //fim main}// fim class
Compilando
Executando
Resultado
Crie um diretório para aplicaçãoSalve a aplicação para o diretório criado
![Page 12: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/12.jpg)
12 de 32
Destaques da Aula 2 - Testando Operações em Delphi Crie um novo projeto no Delphi Adicione um TButton ao Form Altere as propriedades Name e Caption do
Botão
Crie um diretório para a aplicação Salve o projeto/units para o diretório criado
![Page 13: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/13.jpg)
13 de 32
Destaques da Aula 2 - Testando Operações em Delphi Definindo Procedures/Functions
interface ... public procedure exibeMsg (pMsg:String); function somarVal (v1,v2: integer): integer;
implementation ...
procedure TForm1.exibeMsg(pMsg:String);begin showMessage(‘Exemplo Msg’);end;
function TForm1.somarVal(v1,v2:integer): integer;begin result:=v1+v2;end;
end.
![Page 14: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/14.jpg)
14 de 32
Destaques da Aula 2 - Testando Operações em Delphi Programando o Manipulador de eventos do Botão Dar um duplo clique em cima do componente Botão
...
procedure TForm1.btnTesteMsgClick(Sender: TObject);begin exibeMsg(‘Exemplo Msg’); showMessage(intToStr(somarVal(1,2)));end;
end.
Resultado da Execução
![Page 15: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/15.jpg)
15 de 32
Destaques da Aula 2 - Declaração de Variáveis Variáveis Java
class <nome> { <Tipo_Variável> <Nome_Variável>; Tipo_Ret Nome_Método (<param>) { <Tipo_Variável> <Nome_Variável>; <instruções>; } }// fim class
Variáveis Delphiinterface uses | const | type | var
implementation uses | const | type var <Nome_Variável>:<Tipo_Variável>;...end.
Exemplo Javaclass <nome> { String codTurma; public static void main (<parametro>) { int contador; <instruções>; }//fim main }// fim class
Exemplo Delphiinterface uses | const | type | var
implementation uses | const | type var contador: integer;
...end.
Variável de Instância
Variável Local
Variável Global
![Page 16: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/16.jpg)
16 de 32
Destaques da Aula 2 - Tipos de Dados Tipos Primitivos Java
•Numéricos (byte, short, int, long, double e float)
obs: Não confundir com as Classes Integer, Double, Long ...
•boolean (true e false)•Char (‘ ...’ )
•Caracteres sem representação visual
Ex: \n \t \’ \” \\
• Estrutura de Dados (Array) int a[ ]; (declarando) a = new int[10]; (definindo)
•Numéricos (Integer,Longint,Byte, Real, Double)•Boolean (true e false)•Char(‘.’) e String (‘...’)•Operações: Length(String)
• Estrutura de Dados (Array) Type (declarando tipo) TintList = array[1..100] of integer;
Var (declarando variável) arList: TintList;
Tipos Primitivos Delphi
![Page 17: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/17.jpg)
17 de 32
Destaques da Aula 2 - Estruturas de Controle Estruturas de Decisão Java
• if(condição) <instrução>; else --->opcional <instrução>;Exemplo: if (i==5) System.out.println(“i = 5”); if (s.equals(“Teste”)) { i=3; a=“OK”; } else i=0;
Estruturas de Decisão Delphi
• if (condição) then <instrução> else <instrução>;
Exemplo: if (i=5) then showMessage(“i = 5”); if (s = ‘Teste’) begin i=3; a=“OK”; end else i=0;
Instrução Composta ou em Bloco
Instrução Composta ou em Bloco
Diferente do Java, o “;” fecha o comando if
![Page 18: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/18.jpg)
18 de 32
Destaques da Aula 2 - Estruturas de Controle Estruturas de Decisão Java
• switch(variável)...case(valor)
Exemplo:
switch(i) { case 0: System.out.println(“zero”); break; case 1: System.out.println(“um”); break;
default:System.out.println(“pad”); }
Estruturas de Decisão Delphi
• case<variável> of valores:<instrução>; else <instrução>; end;
Exemplo:
case (i) of case 0: showMessage(“zero”); case 1: showMessage(“um”);
else showMessage(“padrão”); end;
![Page 19: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/19.jpg)
19 de 32
Destaques da Aula 2 - Estruturas de Controle Estruturas de Repetição
• while (condição) <instrução>; Exemplo:int i=0, s=10;
while (i<10){ s = s + i; i++; } System.out.println(i+s);
Estruturas de Decisão Delphi
• while (condição) do <instrução>
Exemplo:
i=0; s=10; while (i<10) do begin s = s + i; i++; end; showMessage(IntToStr (i+s));
Instrução Composta ou em Bloco
Instrução Composta ou em Bloco
![Page 20: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/20.jpg)
20 de 32
Arrays
Arrays são objetos que armazenam variáveis do mesmo tipo.
Pode armazenar tanto variáveis de tipos primitivos quanto referências a objetos.
Os arrays são sempre tratados como objetos, mesmo que eles sejam utilizados para armazenar tipos primitivos.
![Page 21: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/21.jpg)
21 de 32
Arrays
Todos os arrays Java são tecnicamente unimensionais.
Arrays bidimensionais são implementados como arrays de arrays.
A declaração de um array não cria um objeto array ou aloca espaço em memória. Na verdade, ela cria uma variável de referência a um array.
![Page 22: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/22.jpg)
22 de 32
Declarando Arrays
Existem diversas formas de declaração:
String[][]s;String []s[];String[][] [] s;String [ ] [ ]s; String[] s[][];String[ ] s[][ ]; String s[][];String s [][][];String[][] s [ ];
String[]s;String []s;String [] s;String [ ] s; String[] s;String[ ] s; String s[];String s [];String s [ ];
![Page 23: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/23.jpg)
23 de 32
Declarando Arrays
Existem diversas formas de declaração:
String[]s;String []s;String [] s;String [ ] s; // extra white space ignoredString[] s;String[ ] s; // extra white space ignoredString s[];String s [];String s [ ]; // extra white space ignored String[] s[];String[][]s;String s [] [ ]; // extra white space ignored
![Page 24: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/24.jpg)
24 de 32
Construindo Arrays
Não inclua o tamanho do array nas declarações:
int[5] testArray; // Errado!
Todos os arrays são zero-based. Arrays devem ser indexados por valores inteiros. Ao acessarmos um array com um índice menor
que 0 ou maior que o comprimento do array gera uma exceção ArrayIndexOutOfBoundsException em tempo de execução.
![Page 25: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/25.jpg)
25 de 32
Construindo Arrays
Uma vez que os arrays são Objetos, eles podem ser inicializados com a palavra reservada new.
Os arrays são automaticamente inicializados com o valor padrão do tipo em questão.
String[] s = new String[100];boolean[] b = new boolean[4];int[] i = new int[10][10];
![Page 26: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/26.jpg)
26 de 32
Construindo Arrays
int[] testScores;testScores = new int[4];
0 0 0 0
0 1 2 3
testScores
Valores
Índicesobjeto array int [ ]
![Page 27: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/27.jpg)
27 de 32
Construindo Arrays
Em Java, os arrays são alocados em tempo de execução, de forma que podemos utilizar o seguinte código:
int arrSize = 100;
String[] myArray = new String[arrSize];
![Page 28: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/28.jpg)
28 de 32
Construindo Arrays
No caso de “Arrays de Objetos”, o que temos na verdade é um array de Referências a Objetos.
- - -
0 1 2
arrayObjs
Objeto Objeto Objeto
![Page 29: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/29.jpg)
29 de 32
Inicializando Arrays
Inicializando com chaves.
String[] oneDimArray = { "abc","def","xyz" };
int[] arr = new int[] {1,2,3};
int[][] twoDimArray = { {1,2,3}, {4,5,6}, {7,8,9} };
int[][] myArray = new int[5][]; Inicializando por elemento.
int[] arr = new int[2];
arr[0] = 2;
arr[1] = 1;
![Page 30: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/30.jpg)
30 de 32
Inicializando Arrays
Inicializando por elemento.
int[][] scores = new int[3][];
scores[0] = new int[4];
scores[1] = new int[6];
scores[2] = new int[1];
![Page 31: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/31.jpg)
31 de 32
Inicializando Arrays
Inicializando com loop.
int [] myArray = new int[3]
for(int i=0; i<(myArray.length); i++){
myArray[i] = i;
}
![Page 32: De 32 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes mafm@cin.ufpe.br Colaboração:](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc105497959413d8c0727/html5/thumbnails/32.jpg)
32 de 32
Inicializando Arrays
No caso de Arrays Dimensionais temos:
- - null
0 1 2
myArray
myArray[0] myArray[1]
6 7
10
9 8
10
5
array int[][]
int[] int[]
array int[][]
2
int [][] myArray = new int[3][];myArray[0] = new int[2];myArray[0][0] = 6;myArray[0][1] = 7;myArray[1] = new int[3];myArray[1][0] = 9;myArray[1][1] = 8;myArray[1][2] = 5;.