Typ wyliczeniowy -

2016-02-09 22:25
0
package enums;

import java.util.Scanner;

/**
* Ten program demonstruje typy wyliczeniowe.
* @version 1.0 2004-05-24
* @author Cay Horstmann
*/

public class EnumTest
{  
   public static void main(String[] args)
   {  
      Scanner in = new Scanner(System.in);
      System.out.print("Podaj rozmiar: (SMALL, MEDIUM, LARGE, EXTRA_LARGE) ");
      String input = in.next().toUpperCase();
      Size size = Enum.valueOf(Size.class, input);
      System.out.println("rozmiar=" + size);
      System.out.println("skrót=" + size.getAbbreviation());
      if (size == Size.EXTRA_LARGE)
         System.out.println("Dobra robota -- nie pominąłeś znaku podkreślenia _.");      
   }
}
// ====================================================================================
enum Size
{
   SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");     //  tej linijki nie rozumiem , co to jest??

   private String abbreviation;                                                   // pole

   private Size(String abbreviation)                                            // konstruktor
   { 
       this.abbreviation = abbreviation; 
   }
   public String getAbbreviation()                                              // metoda
   { 
       return abbreviation; 
   }

}

Nie rozumiem w jaki sposób pobierane są skróty. Ma to związek z ta linijka którą w kodzie podpisałem, że nie rozumiem.
Please help me.

edytowany 1x, ostatnio: golec2604, 2016-02-09 23:04

Pozostało 580 znaków

2016-02-09 22:30
0

1) Proszę po polsku tutorial : http://javastart.pl/static/zaawansowane-programowanie/enum/ Zrób sobie najpierw parę prostych przykładów w kompilatorze dla zrozumienia działania enum a później się zastanów nad działaniem tego kodu.

Pozostało 580 znaków

2016-02-09 22:31
0

Można to zrozumieć jako cztery wywołania konstruktora "klasy" Size.
Więc masz cztery stałych obiekty "klasy" Size.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2016-02-09 22:35
0

To jest przykładowy wynik programu:
Podaj rozmiar: (SMALL, MEDIUM, LARGE, EXTRA_LARGE)
EXTRA_LARGE
rozmiar=EXTRALARGE
skrót=XL
Dobra robota -- nie pominąłeś znaku podkreślenia
.

Nie rozumiem w jaki sposób jest dobierany skrót.

Pozostało 580 znaków

2016-02-09 22:37
0

Linijka, która budzi twoje wątpliwości może być równoważna kodowi

public static final Size SMALL = new Size("S");
public static final Size MEDIUM = new Size("M");
public static final Size LARGE = new Size("L");
public static final Size EXTRA_LARGE = new Size("XL");
Ale dlaczego napisałeś może być równoważna, a nie, że jest równoważna ?? - golec2604 2016-02-09 22:40

Pozostało 580 znaków

2016-02-09 22:42
0
golec2604 napisał(a):

Nie rozumiem w jaki sposób jest dobierany skrót.
Przecież sam je podałeś jako parametry konstruktorów.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
To jest program z książki którego staram sie zrozumieć - golec2604 2016-02-09 22:44
@golec2604 - odpowiadaj w postach; - furious programming 2016-02-09 22:51

Pozostało 580 znaków

2016-02-09 22:52
0

To jest program z książki którego staram sie zrozumieć,
Wstawiłem te 4 linijni zamiast tej co nie rozumiem i program nie działa.

edytowany 1x, ostatnio: golec2604, 2016-02-09 22:56
Dla tego właśnie: - "... może być równoważna kodowi ..." - ale w pełni nie jest równoważna. - _13th_Dragon 2016-02-09 22:57

Pozostało 580 znaków

2016-02-09 23:02
0

Ale ja dalej nie rozumiem tej części kodu. Może pomału krok po kroczku z każdym szczegółem ktoś wyjaśni.
Prosze zajrzeć do kodu zrobiłem opisy jak niektóre linijki rozumiem.

edytowany 1x, ostatnio: golec2604, 2016-02-09 23:05

Pozostało 580 znaków

2016-02-09 23:23
0
golec2604 napisał(a):

Może pomału krok po kroczku z każdym szczegółem ktoś wyjaśni.
Widzę że nie rozumiesz któregoś ze słów w tym co napisano tu: http://4programmers.net/Forum/1224685
Więc wszystkim uprościsz życie jak podasz którego to słowa nie zrozumiałeś.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2016-02-09 23:38
0

Nie rozumiem tej linijki:

SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL"); 

jak ona działa.
Jest sobie taka sama linijka bez czegokolwiek nie rozumiem jak program ja widzi że dostosowuje skróty do pełnych nazw, oraz dlaczego te sktóty są umieszczone w nawiasach i to w dodatku jeszcze jako wartości "string". Skąd kompilator wie że w nawiasach sa skróty?
Ta jedyna linijka sprawia mi największy kłopot reszta kodu jest ok.

edytowany 1x, ostatnio: golec2604, 2016-02-09 23:39

Pozostało 580 znaków

2016-02-10 00:16
0

Bardzo chciałbym to zrozumieć, może ktoś wyjaśnimi tą linijkę??

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0