C# Vererbung Zugriff in der Klasse?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Also bei deinem Programm wird so einiges nicht funktionieren. C# ist case sensitive, was bedeutet, dass das Wort Class nicht als Schlüsselwort class erkannt wird.

Das Problem, welches du weiter unten hast, ist nicht die Vererbung, sondern der Versuch, eine Anweisung (die keiner Initialisierung entspricht) außerhalb eines Methodenkontexts durchzuführen. So hingegen (also bspw. innerhalb des Konstruktors) würde es funktionieren:

class C : B
{
  public C()
  {
    Zahl = 4;
  }

  public bool Test { get; }
}
21

Kannst du mir erklären, warum ich einen Methodenkontext dafür brauche? In einer Klasse kann ich ja auch ganz normal Variablen anlegen, ohne Kontext. Warum geht das bei einer vererbten Variable nicht?

0
44
@Hoedini

Weil es sich hierbei nicht um eine Deklaration/Initialisierung handelt und daher nicht außerhalb eines Kontextes erlaubt ist. Klassen sollen Methoden gruppieren und Methoden wiederum das Verhalten der Instanzen beschreiben. Bei einem neu angelegten Feld kann man von einem Setup sprechen (die Eigenschaften werden erstellt und mit Werten versehen). Eine Definition eines vererbten Felds hingegen ändert einen längst bestehenden Wert (dieser wird ja bereits durch die Basisklasse bestimmt) und stellt somit ein Verhalten dar.

0

Du müstest This und Super nutzen.. frag mich nicht wie genau aber ich spreche kein c# fliessend.

Java Subtraktion zweier Zahlen - Variable definieren

also das ist mein code und ich krieg als ausgabe halt immer 9 egal was ich eingebe, wie muss ich die zwei variablen erste_zahl und zweite_zahl definieren ? also ich weiß, dass ich da nicht einfach eine zahl reinschreiben darf, weil es ja eine variable ist...

import java.util.Scanner;

public class Subtraktion {

public static void main (String [] args){
    
    
    Scanner sub = new Scanner(System.in);
 
    double erste_zahl = 14;
    double zweite_zahl = 5;
    double ergebnis = erste_zahl - zweite_zahl;
    
    System.out.println("Geben Sie eine Zahl ein: ");
    double eingabedouble= sub.nextDouble();
    System.out.println("Geben Sie eine weitere Zahl ohne Komma ein: ");
    double eingabezweidouble= sub.nextDouble();
    System.out.println("Das Ergebnis dieser Subtraktion ist: " + ergebnis);
    
}

}

...zur Frage

Java: Ich soll eine long-Zahl von der Konsole einlesen. Kann mir jemand sagen, wie das geht?

Ich habe als Ansatz diesen Code erstellt:

import Prog1Tools.IOTools;

public class Zeiten umrechnen {
  public static void main(String[]args) {
    System.out.println("Bitte tippen Sie die Sekunden ein.");
  }

In die main-Methode dieses Codes soll ich eine long-Zahl einlesen, die Sekunden angibt.

Kann mir jemand sagen, wie das geht?

LG

...zur Frage

C# workshop Rennbahn Simulator?

Also zu meinem Projekt: Ich bin gerade dabei einen Rennbahn Simulator zu programmieren. (Bin Anfänger) Ich habe 1 PictureBox für die Rennbahn und 4 weitere für die Windhunde. Der Code für die Klasse Windhund unten ist vorgegeben bis zum public bool Laufen(). Also Point p = Bild.Location; p.X += distanz; Bild.Location = p; return distanz;

und int distanz;

habe ich selbst geschrieben. Laufen() soll folgendes tun: Rückt zufällig 1, 2, 3 oder 4 Kästchen vor und aktualisiert die Position des Bilds im Formular. Liefert true, wenn das Rennen gewonnen ist.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace WindowsFormsApplication1
{
    public class Windhund
    {
        public int Startposition;
        public int RennBahnLänge;
        public int Ort;
        public PictureBox Bild = null;
        public Random Zufallszahl;
        int distanz;

        public bool Laufen()
        {
            Point p = Bild.Location;
            p.X += distanz;
            Bild.Location = p;
            return distanz;

        }

das return distanz; funktioniert natürlich nicht. aber ohne geht es ja auch nicht da ich einen Rückgabewert brauche. Was könnte ich machen um es zum laufen zu bringen

...zur Frage

Methode IOTools.readline Java Eclipse?

Guten Abend.

Ich habe mal wieder eine Frage über Java.

Ich habe ein Programm mit der main-Methode erstellt, einen String.

Dieses:

public class Hello {
  public static void main(String[] args) {
    String name = "Bsp";
    String x = name;
    System.out.println("Hallo " + x + "!");
  }
}

Diesen soll ich jetzt so umändern, dass anstelle der direkten Zuweisung meines Namens, die Variable mit Hilfe der Methode IOTools.readLine den Wert belegt.

Den Anfang habe ich schon gemacht:

import Prog1Tools.IOTools;

public class Hello {
  public static void main(String[] args) {
    IOTools.readLine();

Jedoch weiß ich nicht weiter. Dokumentationen lesen bringt mir da auch nicht viel, leider.

Ich hoffe ich bekomme hier Hilfe.

LG

...zur Frage

Kennt Beziehung/Assoziation/Bezugsobjekte in Java?

Ich möchte in Java drei Klassen haben. Die erste führt mit der main-Methode nur die zweite aus. Die zweite erstellt ein Objekt der dritten Klasse. Diese soll aber auf die Variablen und Methoden der zweiten Klasse zugreifen (OHNE static).

Erste Klasse:

public class Start {
public static void main(String[] args) {
    new Spiel();
}

}

Zweite Klasse:

public class Spiel {
Spielfeld meinSpielfeld = new Spielfeld();

int spieler = 1;

public int getSpieler() {
    return spieler;
}

public void setSpieler(int spieler) {
    this.spieler = spieler;
}

}

Dritte Klasse:

public class Spielfeld {
private Spiel meinSpiel;

public void test() {
        
    if (meinSpiel.getSpieler() == 1) {
            meinSpiel.setSpieler(2);        
    }
}

}

Alle Klassen auf das nötigste reduziert.

Was ist zu tun, dass bei der dritten Klasse nicht immer nullPointerException kommt?

...zur Frage

Wie kann man ein Javaprogramm in der Eingabeaufforderung ausführen lassen?

z.B. dieses hier:

public class Main{
    public static void main(String[] args){
        System.out.println( "Hallo welt");
    }
}
...zur Frage

Was möchtest Du wissen?