aiznemts Ierakstīts Septembris 19, 2012 Share Ierakstīts Septembris 19, 2012 Sveiki, Sāku nedaudz paprogrammēt iekš Java. Dots šāds uzdevums: Write the necessary classes to support the following main: static public void main(String[] args) { Expression e = new Sum( new PowerOf( new Number(2.0), new Number(3.0)), new Sum( new Number(1.0), new Average(1,3))); System.out.println(e + " = " + e.evaluate()); } Average – vidējais PowerOf - pakāpē Sum – summa Number – atgriež skaitli Cik sapratu tad izpildīju kā domāju, bet rāda kļūdas par neatbilstošiem tipiem. Kur varētu būt kļūda? public class Main { public static void main(String[] args) { Expression e = new Sum( new PowerOf( new Number((float) 2.0), new Number((float) 3.0)), new Sum( new Number((float) 1.0), new Average(1, 3))); System.out.println(e + " = " + e.evaluate()); } static class Sum { private float num1; private float num2; public Sum(float num1, float num2) { float sum = num1 + num2; //return sum; } } static class PowerOf { private float base; private float exp; public PowerOf(float base, float exp) { float temp = (float) Math.pow(base, exp); } } public static class Number { private float num; public Number(float num) { this.num = num; } } public static class Average { private float num1; private float num2; public Average(float num1, float num2) { float avg = ((num1 + num2) / 2); } } } Paldies! Link to comment Share on other sites More sharing options...
japets Septembris 19, 2012 Share Septembris 19, 2012 Kā redzams uzdevuma nosacījumos, tad, piemēram, klase Sum konstruktorā saņem divus parametrus, pie kam divos dažādos gadījumos dažādus, pirmajā PowerOf un Sum, otrajā Number un Average. Tas nav tas pats, kas float, kā pats uzrakstīji. Es šo uzdevumu risinātu definējot abstraktu bāzes klasi Expression ar abstraktu evalutate funkciju priekš visām Sum, Average, PowerOf, Number klasēm, kas katra prot saņemt konstrutoros vai nu tos floatus vai arī citas Expression klases, lai nav jāveido divi dažādi, kā Sum gadījumā. Attiecīgi katrai klasei jāimplementē evaluate... Un man apnika stāstīt... http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming) Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!