Hi everyone!
I'm using a super class (DVD.java) that handles another class (EnhancedDVD.java). I want to pass the "details" of the DVD into the super class DVD.java. The super class contains the Title, RegionCode, Format, and Length of a dummy DVD...let's say..."Forrest Gump." But I can't figure out how to do this and I have 4 errors going on when I compile the two classes. I have a driver that runs the System.out.println's. But I think it might be handling the classes wrongly as well. Any help? What am I doing wrong?
I want to take this one step at a time. First I'd like to just print out the "details" of the DVD, not worrying about the toString method in the DVD.java class.
But anyways...here's my code for the two classes and the driver. I'll bold where my errors exist, they exist in the ENHANCEDDVD.java class...i have 3 errors
DVD.java class
-------------------------------------------------------------------------------------------------------- - /*
-
* File: DVD.java
-
* Author:
-
* Vers: 1.0.0.0, 1/31/2008, jdm - Initial coding
-
* Vers: 1.0.0.1, 2/19/2008, jdm - modified for TUI
-
* Vers. 1.0.0.2, 2/28/2008, jdm - modified for super class
-
* Desc: This program models a DVD in several ways.
-
*/
-
-
/**
-
* Beginning of the DVD class
-
*/
-
public class DVD
-
{
-
public static final int REGION_FREE = 0; // Final variable for the DVD region_free code
-
public static final int NTSC_FORMAT = 1; // Final variable for the DVD NTSC_format
-
public static final int PAL_FORMAT = 2; // Final variable for the DVD PAL_format
-
public static final int DVD_SECTOR_SIZE = 2048; // Final variable for the DVD sector size
-
public static final int DATA_RATE = 4096 * 1000; // Final variable for the DVD sector size in bytes
-
-
public static int serialNumberDVD = 0; // int static variable for the DVD serial number
-
public static int region; // int variable for the DVD region
-
public static int format; // int variable for the DVD format
-
public static String title; // String variable for the DVD title
-
public static double length = 0.0; // double variable for the DVD length in minutes
-
-
private int sectorNumber = 0; // int variable for the DVD length in minutes
-
-
/**
-
* Constructor: builds the DVD object
-
*/
-
public DVD(String title, int region, int format, double length)
-
{
-
this.title = title; // initialization of title
-
this.region = region; // initialization of region
-
this.format = format; // initialization of format
-
this.length = length; // initialization of length
-
-
serialNumberDVD = serialNumberDVD + 1; // increments the serial number
-
}
-
-
//Queries:-----------------------------------------
-
-
/**
-
* Query: getClassAuthor
-
*/
-
public static String getClassAuthor() // returns name of class’ author (my name)
-
{
-
return " my name " + "\n"; // returns my name
-
}
-
-
/**
-
* Query: returns the DVD sector number
-
*/
-
public long getSectorNumber(double minutes)
-
{
-
long bytesToGoThrough = (long)(minutes * 60 * DATA_RATE) / 8; // converts to bits
-
long sectorNumber = bytesToGoThrough / DVD_SECTOR_SIZE + 1024; // computes the sector size of the DVD
-
return sectorNumber; // returns the sector number
-
}
-
-
/**
-
* Query: returns the DVD serial number
-
*/
-
public static int getSerialNumberDVD()
-
{
-
return serialNumberDVD; // returns the serial number
-
}
-
-
/**
-
* Query: returns the DVD title
-
*/
-
public static String getTitle()
-
{
-
if (region >= 0 && region <= 8) // conditional AND statement
-
{
-
return title; // return DVD title
-
}
-
else
-
{
-
return "Bad Region Code"; // return Bad Region Code
-
}
-
}
-
-
/**
-
* Query: returns the DVD region
-
*/
-
public int getRegion()
-
{
-
return region; // returns the DVD region
-
}
-
-
/**
-
* Query: returns the DVD format
-
*/
-
public int getFormat()
-
{
-
return format; // returns the DVD format
-
}
-
-
/**
-
* Query: returns the DVD length
-
*/
-
public double getLength()
-
{
-
return length; // returns the DVD length
-
}
-
-
//Commands:--------------------------------------------
-
-
/**
-
* Command: toString
-
*/
-
public String toString() // returns a text representation of all the data pertaining to a given
-
// DVD: "serial number, title, region, format, length."
-
{
-
// return of the full DVD printable object - formatted as a form
-
// (properly formatted for display, and without the quotes).
-
return "\n" + "Serial Number: " + getSerialNumberDVD() + "\n" +
-
"Title: " + getTitle() + "\n" +
-
"Region Code: " + getRegion() + "\n" +
-
"Format: " + getFormat() + "\n" +
-
"Length: " + getLength();
-
}
-
}
EnhancedDVD.java
------------------------------------------------------------------------------------------------------ - /*
-
* File: EnhancedDVD.java
-
* Author:
-
* Vers: 1.0.0.0, 3/4/2008, jdm - Initial coding
-
* Desc: This class gathers "details" for a DVD
-
*/
-
-
/**
-
* Beginning of the EnhancedDVD class.
-
*/
- public class EnhancedDVD implements DVD
-
{
-
public String dvdDetails = ""; // string DVD details
-
/**
-
* Constructor: EnhancedDVD constructor that passes in the initial DVD details (dvdDetails).
-
*/
-
public EnhancedDVD(String title, int region, int format, double length, String dvdDetails)
-
{
-
super(title, region, format, length); // passes the dvdDetails into the EnhancedDVD constructor this.dvdDetails = dvdDetails; // assign this dvdDetails to dvdDetails
-
}
-
-
// --------------- Beginning of queries ---------------------------
-
-
/**
-
* Query: getdvdDetails
-
*/
-
public String getDetails()
-
{
-
return dvdDetails; // return of the DVD's details
-
}
-
-
// --------------- Beginning of commands ---------------------------
-
-
/**
-
* Command: setDVDDetails
-
*/
-
public static void setDetails(String DetailsOfDVD)
-
{
-
this.dvdDetails = DetailsofDVD; // sets the DVD's details
-
}
-
-
public String toString() // returns a text representation of all the data pertaining to a given
-
// DVD's details: stars of the movie, movie rating, genre, basic plot, etc., etc.,
-
{
-
// return of the details of the DVD printable object - formatted as a form
-
// (properly formatted for display, and without the quotes).
-
return "\n" + "Details: " + getDetails();
-
}
-
}
Driver class
---------------------------------------------------------------------------------------------------------- - /*
-
* File: Driver5.java
-
* Author:
-
* Vers: 1.0.0.0, 2/28/2008, jdm - Initial coding
-
* Desc: This is a driver for the program
-
*/
-
-
public class Driver5 {
-
-
public static void main(String[] args) {
-
-
System.out.println("Spring 2008 P5 by " + DVD.getClassAuthor()); // print my name as author
-
-
EnhancedDVD newDVD = new EnhancedDVD("Forrest Gump", 1, DVD.NTSC_FORMAT, 200.); // creates the newDVD object
-
EnhancedDVD.setDetails("Stars: Tom Hanks, Robin White" + "\n" +
-
"Rating: PG-13" + "\n" +
-
"Genre: Drama" + "\n" +
-
"Plot: The title character leads viewers through an accidental" + "\n" +
-
"travelogue of American social history from the early 1960s" + "\n" +
-
"through the present in this revisionist fable.");
-
-
//System.out.println(newdvd); // print dvd
-
-
//System.out.println("Last Sectors:"); // print DVD sectors
-
//System.out.println("For \"" + dvd.getTitle() + "\": " +
-
// dvd.getSectorNumber(dvd.getLength())); // print dvd1 sectors
-
-
System.out.println(newDVD); // print the details of the DVD
-
}
-
}
6 2116
I didn't look at your code too closely because as soon as I started reading, I saw that you have some basic misconceptions. Do you understand "static"?
What is the difference between a static field and a non-static (instance) field?
How does one determine which to use?
There are basic questions and you not should write another line of code until you can answer these questions without hesitation.
I didn't look at your code too closely because as soon as I started reading, I saw that you have some basic misconceptions. Do you understand "static"?
What is the difference between a static field and a non-static (instance) field?
How does one determine which to use?
There are basic questions and you not should write another line of code until you can answer these questions without hesitation.
don't you use static if you want to KEEP something from changing? The things I have made static are that way for a reason. If i delete the static assignment I get MORE errors. Also, for other concepts...use public and private if you want to be able to reference the instance variables via their respective class from other classes
don't you use static if you want to KEEP something from changing?
No, I'm afraid that's got absolutely nothing to do with the keyword static. You should review the language basics. Here is a page from Sun's tutorial that talks about static: http://java.sun.com/docs/books/tutor...classvars.html
The things I have made static are that way for a reason. If i delete the static assignment I get MORE errors.
I'm afraid that's not a reason. That's voodoo. Just because one error leads you to make more errors doesn't make any of the errors, uh, not an error.
What you need to do is understand static then use it where it's needed and don't use it where it's wrong to use it.
My rule of thumb is to almost never use it, except for three spots:
1. You program's main method is required to be static
2. Constants can be static: - public static final int DALMATIONS = 101;
3. Utility classes like java.lang.Math can have static methods (sqrt, sin, cos, ...)
No, I'm afraid that's got absolutely nothing to do with the keyword static. You should review the language basics. Here is a page from Sun's tutorial that talks about static: http://java.sun.com/docs/books/tutor...classvars.html
I'm afraid that's not a reason. That's voodoo. Just because one error leads you to make more errors doesn't make any of the errors, uh, not an error.
What you need to do is understand static then use it where it's needed and don't use it where it's wrong to use it.
My rule of thumb is to almost never use it, except for three spots:
1. You program's main method is required to be static
2. Constants can be static: - public static final int DALMATIONS = 101;
3. Utility classes like java.lang.Math can have static methods (sqrt, sin, cos, ...)
I appreciate you pointing me in the right direction BigDaddyLH. i understand where i need to be going. I've actually changed my code a good bit since my last post now that I am in the right mindset! I changed my code to now look like this...however, I'm getting 1 other error...you are absolutely right about errors.
The error is in my EnhancedDVD.java class on line 33 (this.dvdDetails = DetailsOfDVD; // sets the DVD's details
). Could you please point in in the right direction one more time? IT IS an error about a static variable....also, i need to print out the DVD''s toString method as well...but how would i do that?
I'm such a newbie at this stuff!!!
I would greatly appreciate it BigDaddyLH!!!!!!!
DVD.java
-----------------------------------------------------------------------------------------------------
EnhancedDVD.java
--------------------------------------------------------------------------------------------------------------- - /**
-
* Beginning of the EnhancedDVD class.
-
*/
-
public class EnhancedDVD extends DVD
-
{
-
public String dvdDetails = ""; // string DVD details
-
/**
-
* Constructor: EnhancedDVD constructor that passes in the initial DVD details (dvdDetails).
-
*/
-
public EnhancedDVD(String title, int region, int format, double length)
-
{
-
super(title, region, format, length); // passes the DVD class instance variables into the EnhancedDVD constructor
-
this.dvdDetails = dvdDetails; // assign this dvdDetails to dvdDetails
-
}
-
-
// --------------- Beginning of queries ---------------------------
-
-
/**
-
* Query: getdvdDetails
-
*/
-
public String getDetails()
-
{
-
return dvdDetails; // return of the DVD's details
-
}
-
-
// --------------- Beginning of commands ---------------------------
-
-
/**
-
* Command: setDVDDetails
-
*/
-
public static void setDetails(String DetailsOfDVD)
-
{
-
this.dvdDetails = DetailsOfDVD; // sets the DVD's details
-
File: C:\Desktop\EnhancedDVD\EnhancedDVD.java [line: 33]
-
Error: non-static variable this cannot be referenced from a static context
-
}
-
-
public String toString() // returns a text representation of all the data pertaining to a given
-
// DVD's details: stars of the movie, movie rating, genre, basic plot, etc., etc.,
-
{
-
// return of the details of the DVD printable object - formatted as a form
-
// (properly formatted for display, and without the quotes).
-
return "Details: " + getDetails();
-
}
-
}
Driver5.java
--------------------------------------------------------------------------------------------------------------- - /**
-
* Beginning of the Driver5 class
-
*/
-
public class Driver5 {
-
-
public static void main(String[] args) {
-
-
System.out.println("Spring 2008 P5 by " + DVD.getClassAuthor()); // print my name as author
-
-
EnhancedDVD newDVD = new EnhancedDVD("Forrest Gump", 1, DVD.NTSC_FORMAT, 200.); // creates the EnhancedDVD object
-
newDVD.setDetails("Stars: Tom Hanks, Robin White" + "\n" +
-
"Rating: PG-13" + "\n" +
-
"Genre: Drama" + "\n" +
-
"Plot: The title character leads viewers through an accidental" + "\n" +
-
"travelogue of American social history from the early 1960s" + "\n" +
-
"through the present in this revisionist fable.");
-
-
System.out.println(newDVD); // print the details of the DVD
-
}
-
}
maybe the key reason is the implements misused;
change the imlements to extends
OK!!!, I got it working....everything looks good. Many thanks to everyone who posted!! I would never make it through java alone!!! All i had to do was remove the "static" type like BigDaddyLH said. Here's the final working solution....
DVD.java class
------------------------------------------------------------------------------------------------------------
EnhancedDVD.java class
----------------------------------------------------------------------------------------------------------------- - /**
-
* Beginning of the EnhancedDVD class.
-
*/
-
public class EnhancedDVD extends DVD
-
{
-
public String dvdDetails = ""; // string DVD details
-
/**
-
* Constructor: EnhancedDVD constructor that passes in the initial DVD details (dvdDetails).
-
*/
-
public EnhancedDVD(String title, int region, int format, double length)
-
{
-
super(title, region, format, length); // passes the DVD class instance variables into the EnhancedDVD constructor
-
this.dvdDetails = dvdDetails; // assign this dvdDetails to dvdDetails
-
}
-
-
// --------------- Beginning of queries ---------------------------
-
-
/**
-
* Query: getdvdDetails
-
*/
-
public String getDetails()
-
{
-
return dvdDetails; // return of the DVD's details
-
}
-
-
// --------------- Beginning of commands ---------------------------
-
-
/**
-
* Command: setDVDDetails
-
*/
-
public void setDetails(String DetailsOfDVD)
-
{
-
this.dvdDetails = DetailsOfDVD; // sets the DVD's details
-
}
-
-
public String toString() // returns a text representation of all the data pertaining to a given
-
// DVD's details: stars of the movie, movie rating, genre, basic plot, etc., etc.,
-
{
-
// return of the details of the DVD printable object - formatted as a form
-
// (properly formatted for display, and without the quotes).
-
return "Title: " + title + "\n" +
-
"Region: " + region + "\n" +
-
"Format: " + format + "\n" +
-
"Length: " + length + "\n" + "\n" +
-
getDetails() + "\n";
-
}
-
}
Driver5.java class
------------------------------------------------------------------------------------------------------------- - /**
-
* Beginning of the Driver5 class
-
*/
-
public class Driver5 {
-
-
public static void main(String[] args) {
-
-
System.out.println("Spring 2008 P5 by " + DVD.getClassAuthor()); // print my name as author
-
-
EnhancedDVD newDVD = new EnhancedDVD("Forrest Gump", 1, DVD.NTSC_FORMAT, 200.); // creates the EnhancedDVD object
-
newDVD.setDetails("Stars: Tom Hanks, Robin White" + "\n" +
-
"Rating: PG-13" + "\n" +
-
"Genre: Drama" + "\n" +
-
"Plot: The title character leads viewers through an accidental" + "\n" +
-
"travelogue of American social history from the early 1960s" + "\n" +
-
"through the present in this revisionist fable.");
-
-
System.out.println(newDVD); // print the details of the DVD
-
-
System.out.println( "Last Sectors:");
-
System.out.println( "For \"" + newDVD.title + "\": " +
-
DVD.getSectorNumber(newDVD.length) ); // print newdvd sectors
-
}
-
}
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Phil Powell |
last post by:
<?php
class SuperClass {
var $mySuperClassVar;
function SuperClass($myVar) {
$this->mySuperClassVar = $myVar;
echo "super class var = $myVar<p>";
}
|
by: Fernando Rodriguez |
last post by:
Hi,
I need to traverse the methods defined in a class and its superclasses. This
is the code I'm using:
# An instance of class B should be able to check all the methods defined in B
#and A,...
|
by: Nicolas Lehuen |
last post by:
Hi,
I hope this is not a FAQ, but I have trouble understanding the behaviour of
the super() built-in function. I've read the excellent book 'Python in a
Nutshell' which explains this built-in...
|
by: David MacQuigg |
last post by:
I think there is a documentation error in both the Library Reference
section 2.1 and the Python 2.2 Quick Reference page 19. The
explanation for this function is:
super( type)
Returns the...
|
by: Delaney, Timothy C (Timothy) |
last post by:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/286195
This is a new version of super that automatically determines which
method needs to be called based on the existing stack frames....
|
by: Chris Green |
last post by:
Good day,
I've done a bit of searching in the language reference and a couple
pages referring the behavior of super() but I can't find any
discussion of why super needs the name of the class as...
|
by: Paul Rubin |
last post by:
I'm trying the super() function as described in Python Cookbook, 1st ed,
p. 172 (Recipe 5.4).
class A(object):
def f(self):
print 'A'
class B(object):
def f(self):
|
by: John Salerno |
last post by:
Here's some code from Python in a Nutshell. The comments are lines from
a previous example that the calls to super replace in the new example:
class A(object):
def met(self):
print 'A.met'
...
|
by: Noah |
last post by:
Am I the only one that finds the super function to be confusing?
I have a base class that inherits from object.
In other words new style class:
class foo (object):
def __init__ (self, arg_A,...
|
by: Finger.Octopus |
last post by:
Hello, I have been trying to call the super constructor from my
derived class but its not working as expected. See the code:
class HTMLMain:
def __init__(self):
self.text = "<HTML><BODY>";...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM).
In this month's session, we are pleased to welcome back...
|
by: Vimpel783 |
last post by:
Hello!
Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
|
by: jfyes |
last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
|
by: ArrayDB |
last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
|
by: PapaRatzi |
last post by:
Hello,
I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
|
by: Shællîpôpï 09 |
last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
|
by: af34tf |
last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
|
by: Faith0G |
last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome former...
| |