Probleem met public class/ class

Status
Niet open voor verdere reacties.

Bvrtje

Nieuwe gebruiker
Lid geworden
31 okt 2013
Berichten
3
Hallo allemaal,

Ik ben java aan het leren met het boek: En dan is er... Java.
Nu heb ik een probleem dat als ik begin met :

public class oefening2_10 extends JFrame

zoals word aangegeven in het boek dan krijg ik een foutmelding als ik het uit laat voeren.

als ik dan het woordje "public" weg haal dan krijg ik geen foutmelding.

Graag zou ik hier wat uitleg over willen ?
want ik snap niet waarom dit is en of dit problemen gaat geven in het vervolg.

gr Rene
 
Public / private geeft aan wat er buiten de class te zijn is van een class / object / procedure. Alles wat prive is mag alleen in de class gebruikt worden, alles wat publiek is, mag er ook buiten gebruikt worden.

Beetje flauwe manier van dat boek om dat zo verwarrend te maken. Vooral ook omdat hier het probleem eigenlijk de combinatie met "extends" het echte probleem veroorzaakt.
 
Bedankt voor je reactie. t is nog niet helemaal duidelijk, maar ben ook maar pas begonnen.

maar dit boek maakt bij iedere oefening tot nu toe gebruik van "public class" en er is er geen een die werkt op die manier.

Nu had ik nog een vraagje moet je voor ieder applicatie (in mijn geval oefening ) een nieuwe workspace aanmaken?
 
Laatst bewerkt:
Dat laatste is persoonlijke voorkeur. Ik zou het wel doen, omdat je dan je oefeningen mooi apart kan opslaan.

Je maakt normaal ook gebruik van "public" classes, omdat ze anders niet makkelijk te gebruiken zijn (een private class is namelijk niet zomaar bruikbaar)

even een pseudo voorbeeld:
Code:
public class test
    public integer a
    private integer b

public procedure extern
   return a+b //dit kan, want de interne procedure kan a en b zien

private procedure intern
   return a+b //deze procedure is alleen voor intern gebruik in de class

Wat je van "buiten" de class kan zien is:

-De class zelf
-integer "a"
-de procedure "extern"

Hoewel "b" dus wel gebruikt kan worden door onderdelen in die class, is die niet publiek. Hetzelfde geld voor de procedure "intern".
 
Sorry vind dit al lastig, word nog wat voor de rest van het boek :(.

Ik heb een oefening hier waar ik dus zelf het "public" weg heb gehaald waardoor het werkt zou u mij aan hand van dit voorbeeld kunnen uitleggen waarom het anders fout gaat ?

Dit is de code:



// voorbeeld 0301
// int variablen

import javax.swing.*;
import java.awt.*; // graphics

class vb0301 extends JFrame {
public static void main (String args[]){
JFrame frame = new vb0301();
frame.setSize (400,200);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setTitle ("voorbeeld0301");
frame.setContentPane (new Paneel());
frame.setVisible (true);
}
}

// paneel

class Paneel extends JPanel{
private int a;
private int b;
private int antwoord;

public Paneel (){
a = 174;
b = 26;
antwoord = a + b ;
}

public void paintComponent (Graphics g){
super.paintComponent (g);
g.drawString ("uitwerking berekening:",40,20);
g.drawString ("a = " + a,40,40);
g.drawString ("b = " + b,40,60);
g.drawString ("De som is :" + antwoord, 40,80);
}
}
 
Zet dat even tussen [ code ] tags, want dit is niet erg leesbaar. Als je wil oefenen met public / private zijn dit niet de meest makkelijke voorbeelden. ik zou gewoon even met eigen classes oefenen:

Code:
public class Henk
{
   public int a;
   private int b;
}

class Jan
{
   public int a;
   private int b;
}

public class Henkie extends Henk
{
   public int c;
}

public class Jantje extends Jan
{
   public int c;
}

In principe kun je nu al een beetje voorspellen wat er gaat gebeuren als je deze code invoert. "extends" is een speciale case waar je een stuk code bij een bestaande klasse "aanbouwt". Als je eventuele errors hebt opgelost, probeer dan ook eens alle 4 de klassen aan te maken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan