Estude Semanalmente | Semana 4 de março

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

Insira a descrição da imagem aqui

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
Insira a descrição da imagem aqui
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
Insira a descrição da imagem aqui


Gerenciamento do TeamService dos membros da equipe de desenvolvimento: adicionar, excluir etc.
Insira a descrição da imagem aqui
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;
                   }

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

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

Insira a descrição da imagem aqui

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
Publicado 14 artigos originais · Curtidas0 · Visitas 575

Acho que você gosta

Origin blog.csdn.net/weixin_44618426/article/details/105167181
Recomendado
Clasificación