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

Java, klasa punkt i odcinek, ERRROR

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
808 wizyt
pytanie zadane 18 listopada 2016 w Java przez Lukasz95 Bywalec (2,160 p.)

Cześć, mam klasę punkt(ma pola x,y double), chcę utworzyć obiekt odcinek korzystając z parametrów (punkt ,punkt) to wszystko, ok ale gdy chcę skorzystać z parametrów (double double double double) to coś się krzaczy. Pomoże ktoś?

 

package com.company;
import static java.lang.Math.*;

public class Main {

    public static class punkt{
        private double x;
        private double y;
        public punkt(double x,double y){
            this.x = x;
            this.y = y;
        }
        public double getX(){
            return this.x;
        }

        public double getY(){
            return this.y;
        }

        public void setX(double x){
            this.x = x;
        }

        public void setY(double y){
            this.y = y;
        }

        public void show(){
            System.out.println(getY()+" "+getX());
        }


    }

    public static class odcinek{
        private punkt punkt1;
        private punkt punkt2;

        public odcinek(punkt p1, punkt p2){
            this.punkt1 = p1;
            this.punkt2 = p2;
        }

        public odcinek(double a1, double a2,double b1,double b2){
            this.punkt1.setX(a1);
            this.punkt1.setY(a2);
            this.punkt2.setX(b1);
            this.punkt2.setY(b2);
        }

        public punkt getP1(){
            return this.punkt1;
        }

        public punkt getP2(){
            return this.punkt2;
        }

        public void setP1(punkt p3){
            this.punkt1=p3;
        }

        public void setP2(punkt p3){
            this.punkt2=p3;
        }
        public double dlugosc(){
            return sqrt(pow(punkt2.getX()-punkt1.getX(),2)+pow(punkt2.getY()-punkt1.getY(),2));
        }

        public void wyswietl(){
            System.out.println("Punkt 1: "+punkt1.getX()+" "+punkt1.getY());
            System.out.println("Punkt 2: "+punkt2.getX()+" "+punkt2.getY());
            System.out.println("Dlugosc odcinka |P1 P2|: "+dlugosc());
        }



    }



    public static void main(String[] args) {

        punkt p1 = new punkt(1,2);
        punkt p2 = new punkt(3,4);
        punkt p3 = new punkt(1,33);
        p1.show();
        p2.show();
        p3.show();
        odcinek o1 = new odcinek(p1,p2);
        odcinek ox =  new odcinek(1,2,3,4);

    }
}

 

1 odpowiedź

+1 głos
odpowiedź 18 listopada 2016 przez ribeiro Stary wyjadacz (11,440 p.)
wybrane 18 listopada 2016 przez Lukasz95
 
Najlepsza
Czy to nie jest tak, że tworząc odcinek ox odcinek ox = new odcinek(1,2,3,4) w konstruktorze czteroargumentowym wywołujesz metody jego prywatnych obiektów typu punkt, które nigdy jednak nie zostały zainicjalizowane? W momencie np. wywołania this.punkt1.setX(a1); obiekt this.punkt1 wciąż nie istnieje.
komentarz 18 listopada 2016 przez Lukasz95 Bywalec (2,160 p.)
A to nie jest tak ,że jak robię new odcinek() to konstruktor tworzy ten odcinek i co za tym idzie punkt1 i punkt2 bo są to pola w klasie?
2
komentarz 18 listopada 2016 przez ribeiro Stary wyjadacz (11,440 p.)
Tworzy te punkty, ale nie przypisuje do nich nowych obiektów. W przypadku odcinka o1 w argumentach konstruktora posyłasz już stworzone punkty za pomocą new punkt()
1
komentarz 18 listopada 2016 przez Lukasz95 Bywalec (2,160 p.)
okej dzięki już rozumiem. :)
komentarz 6 marca 2017 przez kamip123 Nowicjusz (100 p.)
Miałem dokładnie ten sam problem i twój komentarz mi pomógł dzięki :)

Podobne pytania

0 głosów
3 odpowiedzi 1,093 wizyt
0 głosów
1 odpowiedź 361 wizyt
0 głosów
2 odpowiedzi 172 wizyt
pytanie zadane 27 października 2016 w Java przez Lukasz95 Bywalec (2,160 p.)

93,176 zapytań

142,185 odpowiedzi

321,980 komentarzy

62,506 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1637p. - dia-Chann
  2. 1614p. - Łukasz Piwowar
  3. 1599p. - CC PL
  4. 1597p. - Łukasz Eckert
  5. 1537p. - Łukasz Siedlecki
  6. 1531p. - rucin93
  7. 1356p. - ssynowiec
  8. 1351p. - Tomasz Bielak
  9. 1328p. - Michal Drewniak
  10. 1273p. - Adrian Wieprzkowicz
  11. 1232p. - Mikbac
  12. 1181p. - rafalszastok
  13. 1169p. - Grzegorz Aleksander Klementowski
  14. 1155p. - Piotr Aleksandrowicz
  15. 1149p. - Michał Telesz
Szczegóły i pełne wyniki

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!

...