• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wywołanie klasy abstrakcyjnej

Object Storage Arubacloud
0 głosów
152 wizyt
pytanie zadane 18 listopada 2020 w Java przez Szox Nowicjusz (230 p.)

Witajcie, mam pytanie odnośnie javy.

Jak mogę wywołać te dwa pliki w mainie?

package Przyklady;

public interface ObliczeniaDlaFigur {
    double ObliczPole();
    double ObliczObwod();
}
package Przyklady;

public class Kwadrat implements ObliczeniaDlaFigur {
    protected int bokA;

    public Kwadrat(int bokA) {
        this.bokA = bokA;
    }

    @Override
    public double ObliczPole() {
        double p1 = bokA * bokA;
        return p1;
    }

    @Override
    public double ObliczObwod() {
        double obw = 4 * bokA;
        return obw;
    }
}

 

1 odpowiedź

+1 głos
odpowiedź 18 listopada 2020 przez Wiciorny Ekspert (272,090 p.)
edycja 18 listopada 2020 przez Wiciorny
 
Najlepsza

Co masz na myśli, wywołać "dwa pliki w mainie" ?

Bo nie bardzo rozumiem. 
Masz Klasę kwadrat, która implementuje ObliczanieDlaFigur 
 

wywołanie implementowanych metod, możesz zrobić w sposób utworzenia obiektu w main 

public void main(String[] args){

	Kwadrat obiektKwadrat = new Kwadrat(5); // 5- to bokA 
         obiektKwadrat.ObliczPole(); // wywoluje metode na obiekcie 
	
}

swoją drogą nazwy metod piszemy z małej litery. 

 double obliczPole();
 double obliczObwod();

Jeśli chcesz przechować wartości zwracane przez funkcje, to przypisz rezultat do zmiennej np 

double wartoscZwarcana =obiektKwadrat.ObliczPole(); 

System.out.println(wartoscZwracana); // wypisze wartosc, mozesz tez bezposrednio metode 

 

interface ObliczeniaDlaFigur

to jest interfejs, a nie klasa abstrakcyjna(ktorej instancji nie mozna utworzyc), nie możesz utworzyć obiektu samego interfejsu, za wyjątkiem interfejsów funkcyjnych gdzie. jedynie można by użyć tutaj  klasy anonimowej, i utworzyć jedną instancje. Możesz przypisać  np. obiekt kwadrat jako typ Interfejsu. 
Interfejsy nie mogą mieć stanu. Służą one do definiowania zachowania dla obiektów. Ale inaczej niż w przypadku klasy abstrakcyjnej nie definiują tego zachowania (metody nie mają implementacji).

komentarz 18 listopada 2020 przez Szox Nowicjusz (230 p.)

Nie znam dokładnych definicji, więc przepraszam za złe nazwy sad

 

Dokładnie, mam stworzone 3 pliki (lub jak je można nazwać).

Kwadrat - poboczna klasa

Obliczenia - interfejs

Main - główna klasa w której chciałbym się odwołać do "Kwadrat" i "Obliczenia".

 

public void main(String[] args){
 
    Kwadrat obiektKwadrat = newKwadrat(5); // 5- to bokA 
         obiektKwadrat.ObliczPole(); // wywoluje metode na obiekcie 
     
}

 

Generalnie o to chodziło, ale coś cały czas nie chce działać.

 

1
komentarz 18 listopada 2020 przez Wiciorny Ekspert (272,090 p.)

Ja zrobiłem literówkę gubiąc spacje, na jakim etapie programowani jesteś? Bo z tego co widzę to mam warzenie jakby to był twój 1szy program w życiu 

Kwadrat obiektKwadrat = new Kwadrat(5)

polecenie operatorem new ()- to utworzenie instancji obiektu 

Syntax :
var-name = new class-name();

Podobne pytania

0 głosów
1 odpowiedź 130 wizyt
+2 głosów
2 odpowiedzi 755 wizyt
0 głosów
1 odpowiedź 177 wizyt
pytanie zadane 5 października 2020 w Python przez Dzango111 Użytkownik (660 p.)

92,669 zapytań

141,567 odpowiedzi

320,033 komentarzy

62,034 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...