Permalänk

Hjälp med nybörjar-java

Hej jag försöker lära mig java genom lite olika interaktiva sidor men känner att jag börjar få lite svårt att förstå hur vissa uppgifter ska lösas. Kan någon lösa denna uppgiften åt mig och förklara lite om lösningen.

The Class Car appears below. Fill in the constructor and accelerate method of the Class RocketCar:

constructor - It should call Car's constructor, but also set rocketFuel to 10.
accelerate - It should call Car's accelerate method (to run the regular engine), but it should also fire its rocket engine. I.e. iff it has RocketFuel left, it should increase the speed by another 2 units and decrease the rocketFuel by 1 unit.

class RocketCar extends Car { private int rocketFuel; public RocketCar() { //fill in constructor } public void accelerate() { //fill in method } public String toString() { return super.toString() + " rocketFuel: " + rocketFuel; } } class Car { int speed; private int fuel; private int maxSpeed; Car() { speed = 0; fuel = 20; maxSpeed = 100; } public void accelerate() { if(speed < maxSpeed && fuel > 0){ speed = speed + 1; fuel = fuel - 1; } } public String toString() { return "speed: "+ speed + " fuel: " + fuel; } } class Main { public static void main(String[] args) { RocketCar rc = new RocketCar(); for(int i=0; i<25; i=i+1){ rc.accelerate(); if(i%4 == 0){ System.out.println(i +". "+ rc); } } } }

Permalänk
Medlem
Skrivet av burton666:

Hej jag försöker lära mig java genom lite olika interaktiva sidor men känner att jag börjar få lite svårt att förstå hur vissa uppgifter ska lösas. Kan någon lösa denna uppgiften åt mig och förklara lite om lösningen.

The Class Car appears below. Fill in the constructor and accelerate method of the Class RocketCar:

constructor - It should call Car's constructor, but also set rocketFuel to 10.
accelerate - It should call Car's accelerate method (to run the regular engine), but it should also fire its rocket engine. I.e. iff it has RocketFuel left, it should increase the speed by another 2 units and decrease the rocketFuel by 1 unit.

class RocketCar extends Car { private int rocketFuel; public RocketCar() { //fill in constructor } public void accelerate() { //fill in method } public String toString() { return super.toString() + " rocketFuel: " + rocketFuel; } } class Car { int speed; private int fuel; private int maxSpeed; Car() { speed = 0; fuel = 20; maxSpeed = 100; } public void accelerate() { if(speed < maxSpeed && fuel > 0){ speed = speed + 1; fuel = fuel - 1; } } public String toString() { return "speed: "+ speed + " fuel: " + fuel; } } class Main { public static void main(String[] args) { RocketCar rc = new RocketCar(); for(int i=0; i<25; i=i+1){ rc.accelerate(); if(i%4 == 0){ System.out.println(i +". "+ rc); } } } }

public RocketCar() :base()
{
base.fuel = 10; //kan vara bara fuel = 10;
}

public void override accelerate()
{
if(speed < maxSpeed && fuel > 0)
{
speed = speed + 2;
fuel = fuel - 1;
}
}

Ngt i den stilen. Sj suttit i C# senaste tiden så kanske inte stämmer helt med java, var ngr år sen sist. Sjukt svårt dock att skriva utan att få feedback av "Eclipse" eller vad du nu använder för program Lycka till

Visa signatur

| Windows 10 64-bit Pro | Asus 24" LED VG248QE 144HZ (2st) | EVGA GeForce GTX 780 3GB PhysX CUDA | Intel Core i5-4670K | MSI Z87-G45 Gaming, Socket-1150 | Corsair SSD Force Series GS 240GB 2.5" | Fractal Design Define R4 Black Pearl | Crucial DDR3 BallistiX Tactical 16GB 1600MHz CL9 2x8GB | Cooler Master V850 850W PSU | ASUS Xonar DGX | Noctua NH-U14S CPU Kylare | CM Storm QuickFire TK Keyboard Brown | Ace Laser Gaming Mouse EDGE 3200 | QPAD XXXL |

Permalänk
Medlem

Svårt att förklara när man inte vet vilken nivå du är på. Förstår du resten av koden, med metoder, anrop, variabler och tilldelningar etc.? Vet du vad objekt är, och hur arv och constructorer fungerar?

Visa signatur

Redbox: Asrock B650 Lightning ATX, 7800x3D -20CCO, XFX 6950XT, 2x32GB Corsair Vengence 6400 CL32, WD SN770 2TB, Corsair RMe 1000, Lian Li Lancool 216, Peerless Assassin 120 SE
Purpbox: Z87-Pro, I5 4670K@4.2, Sapphire 290 TRI-X, 2x8GB Crucial Tactical@stock, Deep Silence 1
Samsung Evo 250+500GB + QVO 1TB, 2x1TB 7200RPM backup/lagring
Det var bättre förr: E5300 2600MHz -> 3640MHz, Celeron 300A -> 450MHz

Permalänk
Medlem
Skrivet av burton666:

Hej jag försöker lära mig java genom lite olika interaktiva sidor men känner att jag börjar få lite svårt att förstå hur vissa uppgifter ska lösas. Kan någon lösa denna uppgiften åt mig och förklara lite om lösningen.

The Class Car appears below. Fill in the constructor and accelerate method of the Class RocketCar:

constructor - It should call Car's constructor, but also set rocketFuel to 10.
accelerate - It should call Car's accelerate method (to run the regular engine), but it should also fire its rocket engine. I.e. iff it has RocketFuel left, it should increase the speed by another 2 units and decrease the rocketFuel by 1 unit.

class RocketCar extends Car { private int rocketFuel; public RocketCar() { //fill in constructor } public void accelerate() { //fill in method } public String toString() { return super.toString() + " rocketFuel: " + rocketFuel; } } class Car { int speed; private int fuel; private int maxSpeed; Car() { speed = 0; fuel = 20; maxSpeed = 100; } public void accelerate() { if(speed < maxSpeed && fuel > 0){ speed = speed + 1; fuel = fuel - 1; } } public String toString() { return "speed: "+ speed + " fuel: " + fuel; } } class Main { public static void main(String[] args) { RocketCar rc = new RocketCar(); for(int i=0; i<25; i=i+1){ rc.accelerate(); if(i%4 == 0){ System.out.println(i +". "+ rc); } } } }

Dold text

Utan att veta vilken nivå du ligger på är det ju svårt att förklara något på ett lämpligt sätt. Men här är en kommenterad lösning av vad uppgiften efterfrågar iaf.:

class RocketCar extends Car { private int rocketFuel; /*constructor - It should call Car's constructor, but also set rocketFuel to 10.*/ public RocketCar() { super(); //calling constructor of parent class Car this.rocketFuel = 10; //sets field rocketFuel to 10 } /*accelerate - It should call Car's accelerate method (to run the regular engine), but it should also fire its rocket engine. I.e. iff it has RocketFuel left, it should increase the speed by another 2 units and decrease the rocketFuel by 1 unit.*/ public void accelerate() { super.accelerate(); //Calls inherited accelerate method from Car class. //Run rocket engine if we have rocketFuel if(rocketFuel>0) { this.speed += 2; //increase speed by two (speed is an inherited field from the Car class) this.rocketFuel--; //Decrease rocketFuel field by 1 } } public String toString() { return super.toString() + " rocketFuel: " + rocketFuel; } }

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk
Medlem

Gör Car till en abstrakt klass istället, inkl. metoderna.

class RocketCar extends Car { public RocketCar() { super(); //ändra default värderna maxSpeed = 100; fuel = 70; } @Override public void accelerate() { //speed++ fuel-- osv hur du nu vill låta bilen accelerera } @Override public String toString() { return "RocketCar: Speed = " + speed + " max speed = " + maxSpeed + " Fuel = " + fuel; } } abstract class Car { protected int speed; protected int maxSpeed; protected int fuel; protected Car() { //default värden, som sedan kan ändras av klassen som extend:ar Car speed = 0; maxSpeed = 50; fuel = 30; } public abstract void accelerate(); public abstract String toString(); } public class Main { public static void main(String[] args) { RocketCar rc = new RocketCar(); for (int i = 0; i < 25; i = i + 1) { rc.accelerate(); if (i % 4 == 0) { System.out.println(i + ". " + rc); } } } }

Dold text

Sen är det rekommenderat att ha en .java fil per klass istället för flera klasser i samma fil.

Visa signatur

C>++

Permalänk
Medlem
Skrivet av AnnoyingIB:

Gör Car till en abstrakt klass istället, inkl. metoderna.

class RocketCar extends Car { public RocketCar() { super(); //ändra default värderna maxSpeed = 100; fuel = 70; } @Override public void accelerate() { //speed++ fuel-- osv hur du nu vill låta bilen accelerera } @Override public String toString() { return "RocketCar: Speed = " + speed + " max speed = " + maxSpeed + " Fuel = " + fuel; } } abstract class Car { protected int speed; protected int maxSpeed; protected int fuel; protected Car() { //default värden, som sedan kan ändras av klassen som extend:ar Car speed = 0; maxSpeed = 50; fuel = 30; } public abstract void accelerate(); public abstract String toString(); } public class Main { public static void main(String[] args) { RocketCar rc = new RocketCar(); for (int i = 0; i < 25; i = i + 1) { rc.accelerate(); if (i % 4 == 0) { System.out.println(i + ". " + rc); } } } }

Dold text

Sen är det rekommenderat att ha en .java fil per klass istället för flera klasser i samma fil.

Eller till och med en klass Vehicle, som är ett interface eller en abstrakt klass. På så sätt uppnås ännu mer OOP.

Visa signatur

"This is VAR, spelled A-U-T-O"