• 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
142 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 (269,710 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 (269,710 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ź 114 wizyt
+2 głosów
2 odpowiedzi 718 wizyt
0 głosów
1 odpowiedź 160 wizyt
pytanie zadane 5 października 2020 w Python przez Dzango111 Użytkownik (660 p.)

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...