Wywołanie obiektu(?) z enum w mainie.

0

Kody:

import Shapes.OneParameter; // tu błąd że import Shapes nie może być zrobiony

public class Test {

	public static void main(String args[])
	{
		if(args.length>1)
		{
			OneParameter kwadrat = Shapes.OneParameter.CIRCLE; // tu że OneParameter nie może być uważany za typ
			kwadrat.side = 10;
			System.out.println(kwadrat.circleCircuit() + " <- obwód | pole -> " + kwadrat.circleArea());
		}
		else
		{
			System.out.pAgrumnetstln("Źle");
		}
	}
}
public class Shapes {

	public enum OneParameter
	{
		CIRCLE;
		
		private int side;
		
		protected double circleCircuit()
		{
			return 2*Math.PI*side;
		}
		protected double circleArea()
		{
			return Math.PI*Math.pow(side, 2);
		}
       }
}

To co zakomentowane w Test to błędy które mi się pojawiają. Na wykładzie klasa main była metodą wewnętrzną Shapes, tak jak ten enum OneParameter. Gdy zrobię tak jak właśnie na wykładzie to żadne błędy się nie dzieją, natomiast gdy chcę mieć to w dwóch osobnych klasach a nie w jednej to pojawiają się takie błędy. Co robię źle + ten znak zapytania w temacie, bo w zasadzie nie jestem przekonany czy to tworzenie obiektu.

0

Nie do końca rozumiem pytanie. Po prostu nie możesz tak zrobić i tyle. Jak robisz klasę wewnętrzną to po coś jest ona wewnętrzna i na pewno nie po to żeby ją potem gdzieś uzewnętrzniać.

0

Chodzi o to, że chcesz mieć Shapes w osobnym pliku? Jeśli tak, to spróbuj tego:

import TwojPakiet.Shapes.OneParameter;
0
  1. Po co importujesz jak masz w tym samy katalogu?

  2. "side" jest polem prywatnym, więc nie możesz robić przypisania

kwadrat.side=10;
  1. OneParameter jest typu inner, czyli odwoływać powinieneś się tak:
Shapes.OneParameter kwadrat = Shapes.OneParameter.CIRCLE;

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