Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA]prova d'esame,variabile di classe

    raga aiutoooooo.....
    per favore................
    domani ho l'esame di java all'università..... la traccia che più o meno darà all'esame sara tipo questa
    ************************************************** *************
    Quesito N. 2: (22 punti)
    Scrivere un programma per la gestione di un negozio che gestisce diverse tipologie di articoli per Computers:
    a. Creare una classe Article con le seguenti variabili d’istanza.
    i. Name
    ii. Marca
    iii. Prezzo (Standard Senza riduzione)
    b. Creare una seconda classe chiamata Computer (che eredita Article) con le seguenti proprietà aggiuntive rispetto alla classe Article
    i. Tipo CPU (Pentium, Pentium II, Pentium III, Pentium 4, ...)
    ii. Dimensione RAM
    iii. Dimensione Disco fisso
    iv. Scheda Grafica
    c. Creare una terza classe chiamata Accessory (derivata da Article) con le seguenti proprietà aggiuntive rispetto alla classe Article
    i. Connection (USB, Firewire, RS-232, VGAconnector, …).
    ii. Versione Connection (1.1 (USB), 2.0 (USB), 400 (FireWire), …).
    d. Creare una terza classe chiamata OpticalDrive (derivata da Accessory) con le seguenti proprietà aggiuntive rispetto alla classe Accessory
    i. Speed Lettura
    ii. Speed Scrittura
    e. Definire nelle classi Computer, Accessory e OpticalDrive i metodi read usando il costruttore della classe Article
    f. Definire per tutti articoli di un certo tipo (Computer o Accessory) la percentuale di riduzione (promozione) che il negozio vuole offrire: Esempio: 20 % di riduzione su tutti gli articoli di tipo Computer.
    i. Usare una variabile di classe per la definizione della percentuale di riduzione che il negozio vuole applicare per gli articoli di tipo Computer e Accessory. (Per questo è necessario definire una variabile di classe, attraverso la parola Java static).
    ii. Definire il metodo nella classe Article che permette di ottenere il prezzo dopo la riduzione applicata (Nuovo metodo chiamato: getPromotionalPrice())
    iii. Implementare il metodo prececedente getPromotionalPrice nelle classi derivate da Article.
    iv. Implementare un metodo di classe per l’aggiornamento della riduzione da applicare per tutti gli elementi di una classe Computer o Accessory.
    g. Creare una classe chiamata Shop contenente i seguenti metodi:
    i. Il costruttore che legge da un file, Article.txt, contenenti le informazioni di tutti gli articoli del negozio, crea i relativi oggetti delle classi Computer, Accessory, ed OpticalDrive e li inserisce all’interno di un solo Vector.
    ii. Un metodo per visualizzare sul monitor le informazioni degli articoli con il relativo prezzo corrente (con promozione) e quello senza promozione.
    h. Scrivere il main per permettere l’esecuzione dei metodi.
    Nota: Il file contiene le informazioni di ciascun oggetto. Le informazioni di un oggetto sono disposte una per ciascuna linea di testo e sono precedute dal nome del tipo dell’oggetto cui esse si riferiscono (Computer, Accessory e OpticalDrive), come nel seguente esempio:

    Accessory
    Mouse
    Logitech
    20.00
    USB
    2.0
    Computer
    Presario 2700
    Compaq
    1500,00
    Pentium III
    512
    60
    ATI
    OpticalDrive
    CD-ROM R/W
    Iomega
    100,00
    FireWire
    400
    24
    8
    ************************************************** **************
    so come si fa più o meno solo che non capisco questa parte
    Definire per tutti articoli di un certo tipo (Computer o Accessory) la percentuale di riduzione (promozione) che il negozio vuole offrire: Esempio: 20 % di riduzione su tutti gli articoli di tipo Computer.
    i. Usare una variabile di classe per la definizione della percentuale di riduzione che il negozio vuole applicare per gli articoli di tipo Computer e Accessory. (Per questo è necessario definire una variabile di classe, attraverso la parola Java static).
    ii. Definire il metodo nella classe Article che permette di ottenere il prezzo dopo la riduzione applicata (Nuovo metodo chiamato: getPromotionalPrice())
    iii. Implementare il metodo prececedente getPromotionalPrice nelle classi derivate da Article.
    come devo fare?
    cosa è una varibile di classe...
    è un metodo static?
    vi prego datemi qualche dritta perchè altrimenti domani sono nei guai fino al collo....
    grazie in anticipo....
    accetto qualsiasi esempio di codice .... grazie mille a tutti coloro chi mi aiuteranno
    ciao raga
    ps: il tutto sarà senza interfaccia grafica per fortuna....

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    i.se nn sai cosa sono le variabili di classe mi sa che domani avrai anche altri problemini dato che questo argomento fa parte dei fondamenti di java, cmq ieri qualcuno ha posto la stessa domanda
    http://forum.html.it/forum/showthrea...readid=1061431

    ii.il metodo getPromotionalPrice() prenderà la percentuale e l'importo e calcolerà il nuovo prezzo del prodotto indipendentemente dal fatto che si tratti di un oggetto computer o access.

    iii.nelle due classe rovrascrivi il metodo utilizzando l'oggetto corrispondente alla classe


    gli argomenti trattati sono chiamaramente la parola chiave static con tutti gli annessi e connessi e l'ereditarietà tra classi

  3. #3
    grazie mille... lo so non sono al top in java.. puoi farmi un esempio per capire... te ne searei davvero grato.?

  4. #4
    raga sto cercando di fare il programma solo che mi da errore e non capisco perchè.. ora posto il codice fino a dove sono arrivato
    codice:
    //classe Article
    
    public class Article {
    	protected String nome,marca,prezzo;
    
    	public Article(String nome,String marca,String prezzo)
    
    		{
    		this.nome=nome;
    		this.marca=marca;
    		this.prezzo=prezzo;
    		}
    
    public String getNome()	{return this.nome;}
    public String getMarca()	{return this.marca;}
    public String getPrezzo()	{return this.prezzo;}
    
    }
    codice:
    //classe computer
    import java.io.*;
    import java.util.*;
    
    public class Computer extends Article {
    	protected   String tipocpu,dimensioneram,dimensionedisco,scheda;
    	public Computer(String nome,String marca,String prezzo,String tipocpu,String dimensioneram,String dimensionedisco,String scheda)
    		{
    		super(nome,marca,prezzo);
    		this.tipocpu=tipocpu;
    		this.dimensioneram=dimensioneram;
    		this.dimensionedisco=dimensionedisco;
    		this.scheda=scheda;
    		}
    	public String getTipocpu()			{return this.tipocpu;}
    	public String getDimensioneram()	{return this.dimensioneram;}
    	public String getDimensionedisco()	{return this.dimensionedisco;}
    	public String getScheda()			{return this.scheda;}
    	
    	
    	public static Computer read(BufferedReader br)throws Exception
    {
    	String nome,marca,tipocpu,dimensioneram,dimensionedisco,scheda;
    	nome=br.readLine();
    	if(nome==null)return null;
    	marca=br.readLine();
    	prezzo=br.readLine();
    	tipocpu=br.readLine();
    	dimensioneram=br.readLine();
    	dimensionedisco=br.readLine();
    	scheda=br.readLine();
    	return new Computer(nome,marca,prezzo,tipocpu,dimensioneram,dimensionedisco,scheda);
    }
    }
    codice:
    import java.io.*;
    public class Accessory extends Article{
    	protected static String connection versioneCon;;
    	
    
    	public Accessory(String nome,String marca,String prezzo,String connection,String versioneCon)
    
    	{
    		super(nome,marca,prezzo);
    		this.connection=connection;
    		this.versioneCon=versioneCon;
    		}
    	public String getConnection()	{return this.connection;}
    	public String getVersioneCon()	{return this.versioneCon;}
    
    public static Accessory readAcc(BufferedReader br)throws Exception
    {
    	String nome,marca,prezzo,connection,versioneCon;
    	nome=br.readLine();
    	if(nome==null)return null;
    	marca=br.readLine();
    	prezzo=br.readLine();
    	connection=br.readLine();
    	versioneCon=br.readLine();
    	return new Accessory( nome,marca,prezzo,connection,versioneCon);
    	
    }
    }
    codice:
    //classe OpticalDrive
    import java.io.*;
    import java.util.*;
    public class OpticalDrive extends Accessory {
    	private String speedlettura,speedscrittura;
    
    	public OpticalDrive(String nome,String marca,String prezzo,String connection,String versioneCon,String speedlettura,String speedscrittura)
    
    		{
    		super( nome, marca, prezzo, connection, versioneCon);
    		this.speedlettura=speedlettura;
    		this.speedscrittura=speedscrittura;
    		}
    	public String getSpeedlettura()	{return this.speedlettura;}
    	public String getSpeedscrittura()	{return this.speedscrittura;}
    	
    public static OpticalDrive readOp(BufferedReader br)throws Exception
    
    	{
    		nome=br.readLine();
    		if(nome==null)return null;
    		marca=br.readLine();
    		prezzo=br.readLine();
    		connection=br.readLine();
    		versioneCon=br.readLine();
    		speedlettura=br.readLine();
    		speedscrittura=br.readLine();
    		return new OpticalDrive(nome,marca,prezzo,connection,versioneCon,speedlettura,speedscrittura);
    		
    	}
    }
    nella classe OpticalDrive mi dice comme errore nel metodo readOp
    per es nella variabile nome presa da Article:cannot make a static reference to the non-static fields nome e cosi via lo stesso errore per tutte le variabili del metodo?
    per non avere questo errore cosa devo fare?
    non credo che devo convertire tutte le variabili di tipo static...
    poi sono protected boooh

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    codice:
    public class Article {
    	protected String nome,marca,prezzo;
    
    	public Article(String nome,String marca,String prezzo)
    
    		{
    		this.nome=nome;
    		this.marca=marca;
    		this.prezzo=prezzo;
    		}
    
    public String getNome()	{return this.nome;}
    public String getMarca()	{return this.marca;}
    public String getPrezzo()	{return this.prezzo;}
    }
    
    import java.io.*;
    import java.util.*;
    public class OpticalDrive extends Accesory {
    	private String speedlettura,speedscrittura;
    
    	public OpticalDrive(String nome,String marca,String prezzo,String connection,String versioneCon,String speedlettura,String speedscrittura)
    
    		{
    		super( nome, marca, prezzo, connection, versioneCon);
    		this.speedlettura=speedlettura;
    		this.speedscrittura=speedscrittura;
    		}
    	public String getSpeedlettura()	{return this.speedlettura;}
    	public String getSpeedscrittura()	{return this.speedscrittura;}
    	
    public OpticalDrive readOp(BufferedReader br)throws Exception
    
    	{
    		nome=br.readLine();
    		if(nome==null)return null;
    		marca=br.readLine();
    		prezzo=br.readLine();
    		connection=br.readLine();
    		versioneCon=br.readLine();
    		speedlettura=br.readLine();
    		speedscrittura=br.readLine();
    		return new OpticalDrive(nome,marca,prezzo,connection,versioneCon,speedlettura,speedscrittura);
    		
    	}
    }
    
    import java.io.*;
    public class Accesory extends Article{
    	Accesory a;
    	protected static String connection, versioneCon;
    	
    
    	public Accesory(String nome,String marca,String prezzo,String connection,String versioneCon)
    
    	{
    		super(nome,marca,prezzo);
    		this.connection=connection;
    		this.versioneCon=versioneCon;
    		}
    	public String getConnection()	{return this.connection;}
    	public String getVersioneCon()	{return this.versioneCon;}
    
    public Accesory readAcc(BufferedReader br)throws Exception
    {
    	String nome,marca,prezzo,connection,versioneCon;
    	nome=br.readLine();
    	if(nome==null)return null;
    	marca=br.readLine();
    	prezzo=br.readLine();
    	connection=br.readLine();
    	versioneCon=br.readLine();
    	return new Accesory( nome,marca,prezzo,connection,versioneCon);
    	
    }
    }
    
    import java.io.*;
    import java.util.*;
    
    public class Computer extends Article {
    	protected   String tipocpu,dimensioneram,dimensionedisco,scheda;
    	public Computer(String nome,String marca,String prezzo,String tipocpu,String dimensioneram,String dimensionedisco,String scheda)
    		{
    		super(nome,marca,prezzo);
    		this.tipocpu=tipocpu;
    		this.dimensioneram=dimensioneram;
    		this.dimensionedisco=dimensionedisco;
    		this.scheda=scheda;
    		}
    	public String getTipocpu()			{return this.tipocpu;}
    	public String getDimensioneram()	{return this.dimensioneram;}
    	public String getDimensionedisco()	{return this.dimensionedisco;}
    	public String getScheda()			{return this.scheda;}
    	
    	
    	public  Computer read(BufferedReader br)throws Exception
    {
    	String nome,marca,tipocpu,dimensioneram,dimensionedisco,scheda;
    	nome=br.readLine();
    	if(nome==null)return null;
    	marca=br.readLine();
    	prezzo=br.readLine();
    	tipocpu=br.readLine();
    	dimensioneram=br.readLine();
    	dimensionedisco=br.readLine();
    	scheda=br.readLine();
    	return new Computer(nome,marca,prezzo,tipocpu,dimensioneram,dimensionedisco,scheda);
    }
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    per la storia dello sconto in Article metti
    codice:
    public static int sconto=20;
    public static int sc(Article o){
    	int sco=0;
    	sco=Integer.parseInt(o.prezzo)-Integer.parseInt(o.prezzo)*sconto/100;
    return sco;	
    }
    in computer metti
    codice:
    public int sconto(Article c){
    		int sco=super.sc(c);
    		
    		return sco;
    	}
    stessa cosa in Access.

    Non l'ho testato, verifica

  7. #7
    grazie mille sei un genio.
    provo subito

  8. #8
    raga un ultima domanda
    ho le mie classi le riposto
    codice:
    import java.io.*;
    public class Article {
    	protected String nome,marca,prezzo;
    
    	public Article(String nome,String marca,String prezzo)
    
    		{
    		this.nome=nome;
    		this.marca=marca;
    		this.prezzo=prezzo;
    		}
    
    public String getNome()	{return this.nome;}
    public String getMarca()	{return this.marca;}
    public String getPrezzo()	{return this.prezzo;}
    
    public static int sconto=20;
    public static int sc(Article o){
    	int sco=0;
    	sco=Integer.parseInt(o.prezzo)-Integer.parseInt(o.prezzo)*sconto/100;
    return sco;	
    }
    }
    codice:
    import java.io.*;
    import java.util.*;
    
    public class Computer extends Article {
    	protected String tipocpu,dimensioneram,dimensionedisco,scheda;
    	public Computer(String nome,String marca,String prezzo,String tipocpu,String dimensioneram,String dimensionedisco,String scheda)
    		{
    		super(nome,marca,prezzo);
    		this.tipocpu=tipocpu;
    		this.dimensioneram=dimensioneram;
    		this.dimensionedisco=dimensionedisco;
    		this.scheda=scheda;
    		}
    	public String getTipocpu()			{return this.tipocpu;}
    	public String getDimensioneram()	{return this.dimensioneram;}
    	public String getDimensionedisco()	{return this.dimensionedisco;}
    	public String getScheda()			{return this.scheda;}
    	
    	
    	public static Computer read(BufferedReader br)throws Exception
    {
    	String nome,marca,prezzo,tipocpu,dimensioneram,dimensionedisco,scheda;
    	nome=br.readLine();
    	if(nome==null)return null;
    	marca =br.readLine();
    	prezzo =br.readLine();
    	tipocpu=br.readLine();
    	dimensioneram=br.readLine();
    	dimensionedisco=br.readLine();
    	scheda=br.readLine();
    	return new Computer(nome,marca,prezzo,tipocpu,dimensioneram,dimensionedisco,scheda);
    }
    	public int sconto(Article c){
    		int sco=super.sc(c);
    		
    		return sco;
    	}
    }
    codice:
    import java.io.*;
    public class Accessory extends Article{
    	protected String connection,versioneCon;
    
    
    	public Accessory(String nome,String marca,String prezzo,String connection,String versioneCon)
    
    	{
    		super(nome,marca,prezzo);
    		this.connection=connection;
    		this.versioneCon=versioneCon;
    		}
    	public String getConnection()	{return this.connection;}
    	public String getVersioneCon()	{return this.versioneCon;}
    
    public static Accessory readAcc(BufferedReader br)throws Exception
    {
    	String nome,marca,prezzo,connection,versioneCon;
    	nome=br.readLine();
    	if(nome==null)return null;
    	marca=br.readLine();
    	prezzo=br.readLine();
    	connection=br.readLine();
    	versioneCon=br.readLine();
    	return new Accessory( nome,marca,prezzo,connection,versioneCon);
    	
    }
    public int sconto(Article c){
    	int sco=super.sc(c);
    	
    	return sco;
    }
    }
    codice:
    import java.io.*;
    import java.util.*;
    public class OpticalDrive extends Accessory {
    	private String speedlettura,speedscrittura;
    
    	public OpticalDrive(String nome,String marca,String prezzo,String connection,String versioneCon,String speedlettura,String speedscrittura)
    
    		{
    		super( nome, marca, prezzo, connection, versioneCon);
    		this.speedlettura=speedlettura;
    		this.speedscrittura=speedscrittura;
    		}
    	public String getSpeedlettura()	{return this.speedlettura;}
    	public String getSpeedscrittura()	{return this.speedscrittura;}
    	
    public static OpticalDrive readOp(BufferedReader br)throws Exception
    
    	{
    	 String nome,marca,prezzo,connection,versioneCon,speedlettura,speedscrittura;
    		nome=br.readLine();
    		if(nome==null)return null;
    		marca=br.readLine();
    		prezzo=br.readLine();
    		connection=br.readLine();
    		versioneCon=br.readLine();
    		speedlettura=br.readLine();
    		speedscrittura=br.readLine();
    		return new OpticalDrive(nome,marca,prezzo,connection,versioneCon,speedlettura,speedscrittura);
    		
    	}
    }
    codice:
    classe in cui voglio creare un unico oggetto pack che è formato dalle 4 classi precedenti
    import java.io.*;
    import java.util.*;
    public class Pack {
    	private Computer computer;
    	private Accessory accessory;
    	private OpticalDrive optical;
    public  Pack (Computer computer,Accessory accessory,OpticalDrive optical)throws Exception
    {
    this.computer=computer;
    this.accessory=accessory;
    this.optical=optical;
    	
    }
    public static Pack readAll(BufferedReader br)throws Exception
    {
    	
    		
    	
    }
    
    }
    vorrei sapere
    cosa devo scrivere in questo metodo
    codice:
    public static Pack readAll(BufferedReader br)throws Exception
    {
    	
    		
    	
    }
    per creare un unico oggetto pack?
    Ho provato cosi ma non va
    codice:
    public static Pack readAll(BufferedReader br)throws Exception
    {
    	String line=br.readLine();
    	if(line.compareTo("Accessory")==0){
    		Accessory accessory=Accessory.readAcc(br);
    		
    	}
    	if(line.compareTo("Computer")==0){
    		Computer computer=Computer.read(br);
    		
    	}
    
    if(line.compareTo("OpticalDrive")==0){
    	OpticalDrive optical=OpticalDrive.readOp(br);
    	
    }
    return new Pack(accessory,computer,optical);
    }
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    puoi creare una classe pack per gestire le altre 3 ma nn vedo l'utilità di costruire un oggetto pack che contiene gli altri oggetti, fai solo il metodo che controlla la stringa.
    Sicuramente nn va perchè usando deli if solo una delle condizioni è verificata e nn ci saranno mai tutti i 2 tipi di oggetti contemporaneamente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.