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

Wywołanie klasy abstrakcyjnej

Aruba Cloud - Virtual Private Server VPS
0 głosów
216 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 (280,450 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 (280,450 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ź 209 wizyt
+2 głosów
2 odpowiedzi 963 wizyt
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 5 października 2020 w Python przez Dzango111 Użytkownik (660 p.)

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,663 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...