Estude Semanalmente | Semana 4 de março
- 1. Conteúdo de aprendizagem
- 1. visão geral
- 2. conteúdo específico
- Manipulação de exceção
- Projeto 3 Software de agendamento da equipe de desenvolvimento
- domínio - o pacote em que a classe Javabean está localizada
- módulo de implementação específico do serviço
- Ver módulo
- Artigos avançados - multithreading
- Artigos avançados - JAVA comumente usados
- 3. Problemas encontrados e reflexão (80/100)
- 2. Planeje a próxima semana
A página de edição do wow CSDN foi atualizada. (^ - ^)
Parece mais conveniente no passado.
1. Conteúdo de aprendizagem
1. visão geral
- Manipulação de exceção
- Projeto abrangente 3: Software de agendamento da equipe de desenvolvimento
- Artigos avançados - multithreading
- Artigos avançados - categorias comumente usadas
2. conteúdo específico
Manipulação de exceção
- Mecanismo de tratamento de exceções: (2 métodos)
tente pegar finalmente: geralmente usado, tente {incluir exceção} catch (tipo de exceção) {lidar com método de exceção} finalmente {conteúdo que será executado}
lança: jogue para o superior
Lançar manualmente uma exceção : método de captura e lançamento de objetos Throw: 2 tipos, o sistema lança automaticamente, lança joga (como entrada negativa)
catch: 2 tipos, tenta pegar finalmente, joga
Projeto 3 Software de agendamento da equipe de desenvolvimento
domínio - o pacote em que a classe Javabean está localizada
Programador, Designer, Arquiteto de
Interface e Equipamento de subclasse de funcionários e classes de implementação NoteBook, PC, Impressora
Criação de classe básica
módulo de implementação específico do serviço
NameListService:
responsável por encapsular os dados em Dados na matriz Employee [] e fornecer operações relacionadas. Método
Employee [] Employee [] está equipado com ID, nome, idade, salário, cargo, bônus, equipamento de estoque
1. Crie uma matriz de quantidade de dados
2. Coloque um total de O nome do ID, a idade e o salário podem ser obtidos por Data.EMPLOMMES [i] [1]
* Observe que o tipo int deve usar Integer.parseInt para converter o tipo de string em int
[por exemplo] salário duplo = salário duplo = Integer.parseInt (Data.EMPLOYEES [i] [4 ]);
3. Switch (tipo)
{case XXX:
break; ...
}
o tipo, extrai o objeto de dispositivo correspondente e bônus, posições de ações
[por exemplo] empregados [i] = new Architect ( id, nome, idade, salário , equipamento, bônus, estoque); O
equipamento obtido em 4.3 pode ser escrito como um método: createEquipment (i)
gera o conteúdo de texto correspondente de acordo com o tipo na matriz Data.EQUIPMENTS [] [], usando caso de comutação
[por exemplo]
preço duplo = Double.parseDouble (Data.EQUIPMENTS [i] [2]);
retorna novo bloco de notas (modelo, preço);
5. O método Get all Employees getAllEmployees ()
retorna funcionários diretamente;
6. O Get Get Employees com o ID especificado getEmployee (int id) lança TeamException {
* Observe que a exceção de funcionário especificada não pode ser encontrada,
por exemplo, new throw new TeamException (“Não é possível encontrar o especificado Employee "); // lança uma exceção
Gerenciamento do TeamService dos membros da equipe de desenvolvimento: adicionar, excluir etc.
1.
Contador de atributos : ID do membro de 1 ++ [static int]
MAX_MEMBER: limite o número de equipes de desenvolvimento [final int
] Equipe do programador []: equipe da matriz, salve os membros da equipe de desenvolvimento
total: registra o número real de pessoas na equipe de desenvolvimento [int]
2.getTeam ()
Obter todos os membros da equipe de desenvolvimento
[i] = this.team [i];
3.addMember (Employee e) lança TeamException {
Adicione o funcionário especificado a
3.1 Erros na equipe de desenvolvimento, o erro é relatado
que o membro não é desenvolvedor e não pode ser adicionado
O funcionário já está na equipe de desenvolvimento (usando o método isExit)
O funcionário já é membro da equipe (a julgar pelo status do status) O membro está de férias e não pode ser adicionado
Pode haver no máximo um arquiteto na
equipe. No máximo dois designers na
equipe. No máximo três programadores na equipe.
[Por exemplo] Este membro não é desenvolvedor e não pode ser adicionado
se (! (E instanceof Programmer)) {
throw new TeamException ("Este membro não é desenvolvedor e não pode ser adicionado");
}
[por exemplo] Determinar o status
O funcionário já é membro de uma equipe (julgamento por status) O empregado está de férias e não pode ser adicionado
// 1.
Programador Forçado p = (Programador) e
// 2. Status de julgamento
se (“OCUPADO”. getStatus (). getNAME ())) {// Nota na frente, pode ser um erro de ponteiro nulo;
lança nova TeamException ("O funcionário já é membro da equipe");
} else if ("VOCATION" .equals (p.getStatus ( ) .getNAME ())) {
throw new TeamException ("Este membro está de férias e não pode ser adicionado");
}
3.2 Se o limite for atingido, um erro será relatado
// Obtenha os arquitetos, designers, programadores dos membros existentes da equipe o número de
IF (equipa [I] do instanceof Architect) {
numOfArch ++;
// obtém a categoria atual p
IF (Architect o instanceof p) {
IF (numOfArch> = 1.) {
throw new new TeamException ( "time pode ter no máximo um arquiteto ”);
}
} Senão se (p exemplo do Designer) {
Observe o necessário se () {if ()…} escrevendo e a ordem do pequeno arco ao grande Pro
Com && escrevendo, quando o arquiteto estiver cheio, ingressar no arquiteto entrará no else if e tratará o arquiteto como um designer.
Entenda logicamente o
3.3 da junção
// add
team [total ++] = p;
// status
p.setStatus (Status.BUSY);
// mID
p.setMemberId (counter ++);
4. delete
removeMember (int memberId) lança TeamException {
// 1 para percorrer a equipe para encontrar o ID, o status é alterado para GRATUITO e aparece quando o descobre
// um erro é relatado se (i == total) {// Se for conhecido que nenhuma correspondência pode ser encontrada, o último será total,
lançando uma nova TeamException ("Não é possível encontrar o especificado MemberId da equipe, falha na exclusão ");
}
// 2 exclusão - j-1 = j; total-1 = nulo;
Ver módulo
Escreva a interface de saída correspondente e
preste atenção em quando e quando o loop while não for usado
switch (menu){
case '1':
getTeam();//显示团队成员列表
break;
case '2':
addMember();//添加成员
break;
case '3':
deleteMember();//删除成员
break;
case '4':
System.out.println("确认是否退出(Y/N):");
char isExit = TSUtility.readConfirmSelection();
if (isExit == 'Y'){
loopFlag = false;
}
Artigos avançados - multithreading
Criação de threads (4 métodos)
Herdar Thread,
implementar interface executável,
implementar interface Callable,
usar pool de threads (comumente usado)
Resolver o problema de segurança da linha (3 métodos)
Bloco de código sincronizado sincronizado (mesmo monitor de sincronização) {}
Método de sincronização private sincronized void show () {}
Bloqueie o bloqueio manual.lock .unlock
Artigos avançados - JAVA comumente usados
String ... o local criado internamente
3. Problemas encontrados e reflexão (80/100)
- Não familiarizado com as teclas de atalho da IDEA,
acumule lentamente e substitua operações comuns por teclas de atalho - Não entendo bem a relação entre os pacotes no projeto IDEA
- Huawei escolher match-aquecimento suave ... fazê-lo funcionar ... os dados de importação até mesmo
recursos de recuperação para melhorar, Baidu não está no lugar
e outros sistemas de conclusão e, em seguida, olhar
2. Planeje a próxima semana
- Continue para o estágio avançado
- Os tópicos de seleção suave do HW examinam
- Tutorial de desenvolvimento do Android