Typ wyliczeniowy -

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.

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.
0

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

0

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

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

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");
0
golec2604 napisał(a):

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

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.

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.

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ś.

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.

0

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

0
golec2604 napisał(a):

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

Wyjaśnienie masz już podane tu: http://4programmers.net/Forum/1224685
prostsze i pełniejsze wytłumaczenie masz w dokumentacji,
jeżeli nie chcesz lub nie umiesz czytać dokumentacji to zechciej oraz/lub się naucz,
bo inaczej nici po tobie w tej dziedzinie.

0

Drogi kolego nie podaliście mi jak to działa. Może dla Ciebie jest taka ogólna wypowiedź wystarczająca bo sie na tym znasz. Pytam tutaj aby dostać odpowiedź jezykiem prostym a nie dokumentacyjnym. Przeczytaj to jeszcze raz i wyjasniej prosze dokładnie co sie dzieje w tej linijce :

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.

0

Chyba juz wiem o co chodzi.

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