Metoda składowa - pomoc w rozwianiu pytań

0

Witam !
Wiem że może zabrzmieć to banalnie ale tak jak w temacie czym jest metoda składowa? I czy kod poniżej jest właśnie taką metodą, jeśli jest jak ją wywołać aby setter dostawał info że jest coś takiego ? Pozdrawiam !

public void zniżka()
	{
			// rabat 10%
			if(szybkośćCPU<5 && ilośćPeryferi<6 && cena>5000)
			{
				cena2 = cena - (cena*0.1); 
				System.out.println("Zniżka wynosi: "+ cena2);
				return;
			}
			// rabat 5%
			if (cena<3000 || cena>5000)
			{
				cena2 = cena - (cena* 0.05);
			}
		
		else
		{
			System.out.println("Zniżka nie zostanie naliczona");
		}
	}

dodanie znacznika <code class="java"> - @furious programming

1
  1. Nie używaj polskich znaków w nazwach metod i zmiennych.
  2. Jeśli funkcja związana jest z daną klasą to jest jej metodą składową albo metodą klasową (jeśli jest statyczna).
  3. Użycie settera w innej metodzie:
class Point
{
	int x, y;
	
	public Point(int x, int y) {
		this.x = x;
		this.y = y;
	}
	
	public void setX(int x) {
		this.x = x;
	}
	
	public void costam() {
		this.setX(5);
	}
	
}
0

Mam coś takiego, jak zrobić aby program brał pod uwagę tą metodę ?? Dziękuje za pomoc.

 

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Komputer 
{
	private String nazwaProducenta;
	private int cena;
	private int szybkoscCPU;
	private int iloscPeryferi;
	
	double cena2;
	String[] producent = new String[] {"ASUS", "ACER", "TOSHIBA", "LENOVO"};
	String[] kolorObudowy = new String [] {"SILVER","GREY","BLACK"};
	
	Scanner sc = new Scanner (System.in);
	
	public Komputer()
	{
		String naz="";
		int cen=0;
		int CPU =0;
		int ip = 0;
		System.out.println("Podaj nazwe producenta składającą się 3 elementów");
		naz = sc.nextLine();
		System.out.println("Podaj cene");
		cen = sc.nextInt();
		System.out.println("Podaj szybkość CPU");
		CPU = sc.nextInt();
		System.out.println("Podaj ilość Peryferii");
		ip = sc.nextInt();
		
		setnazwaProducenta(naz);
		setcena(cen);
		setszybkośćCPU(CPU);
		setilośćPeryferi(ip);
		
	}
	public Komputer (File plik) 
	{
		plik = new File ("D:\\plik.txt");
		try
		{
			Scanner sc1 = new Scanner (plik);
			while (sc1.hasNext() == true)
			{
				String naz = sc1.next();
				int cen = sc1.nextInt();
				int cpu = sc1.nextInt();
				int ip = sc1.nextInt();
				
			}
			
			
			sc1.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
	}
	public void setnazwaProducenta(String nP1)
	{
		String nP = nP1.toUpperCase();
		String tab[] = nP.split(" ");
		
		if (tab.length == 3)
		{
			// ============= pierwszy =======================
			boolean wynik = false;
			for (int i = 0;i<producent.length;i++)
			{
				if(tab[0].compareTo(producent[i]) == 0)
				{
					wynik = true;
					break;
				}
			}
			if (wynik == false)
			{
				System.out.println("Pierwszy wyraz w nazwie marki jest nieprawidłowy");
				return;
			}
			// ============= drugi ==============
			if (tab[1].length() == 4)
			{
				if(Character.isDigit(tab[1].charAt(0)) == false)
				{
					System.out.println("Drugi wyraz w nazwie marki jest nie prawidłowy");
					return;
				}
			}
			else
			{
				System.out.println("Drugi wyraz w nazwie marki jest nieprawidłowy (2)");
				return;
			}
			// ============= trzeci ===========
			boolean czykolorObudowy = false;
			for(int j = 0 ; j<kolorObudowy.length;j++)
			{
				if (tab[2].compareTo(kolorObudowy[j]) == 0)
				{
					czykolorObudowy = true;
					break;
				}
			}
			if (czykolorObudowy == false)
			{
				System.out.println("Trzeci wyraz w nazwie marki jest nie prawidłowy");
				return;
			}
			
			nazwaProducenta = nP;
				
		}
		else
		{
			System.out.println("Zła konstrukcja marki");
		}
	}
	public void setcena(int c)
	{
		if (c>1500 && c<5500)
		{
			cena = c;
			return;
		}
		else
		{
			System.out.println("Podana cena jest błędna");
		}
		
	}
	public void setszybkoscCPU (int sC)
	{
		if (sC>1 && sC<=5)
		{
			szybkoscCPU = sC;
			return;
		}
		else
		{
			System.out.println("Podana szybkość CPU jest błędna");
		}
	}
	public void setiloscPeryferi(int iP)
	{
		if (iP>4 && iP<10)
		{
			iloscPeryferi = iP;
			return;
		}
		else
		{
			System.out.println("Podana ilość peryferii jest błędna");
		}
	}
	public String getnazwaProducenta()
	{
		return nazwaProducenta;
	}
	public int getcena()
	{
		return cena;
	}
	public int getszybkoscCPU()
	{
		return szybkoscCPU;
	}
	public int getiloscPeryferi()
	{
		return iloscPeryferi;
	}
	
	
	public void znizka()
	{
		// rabat 10%
		if(szybkoscCPU<5 && iloscPeryferi<6 && cena>5000)
		{
			cena2 = cena - (cena*0.1); 
			System.out.println("Zniżka wynosi 10%");
			return;
		}
		// rabat 5%
		if (cena<3000 || cena>5000)
		{
			cena2 = cena - (cena* 0.05);
			System.out.println("Zniżka wynosi 5%");
		}
		// rabat 3%
		else
		{
			cena2 = cena - (cena*0.03);
			System.out.println("Zniżka wynosi 3%");
		}
	}

	
	@Override
	public String toString()
	{
		
		return getnazwaProducenta()+" "+getcena()+" "+getszybkoscCPU()+" "+getiloscPeryferi();
	}
}
0

Zrobione ! :D dzięki za pomoc temat do zamknięcia :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1