Using This Reference Variable On Constructors - Involve Objects?
Apr 2, 2014
I am trying to simplify my constructor by using "this" reference variable. I am aware how to use this reference when making constructors that involve fields of primitive data types; however, not so sure fields involving objects. I have made the following constructors and haver placed a question mark in the last parameter. How I can use this reference that involves objects.
public class RetailItem
{
//Create the fiels for item.
//You need item name and item number. then you would need
//cost
private String description;
private int Item_Number;
private CostData cost;
when we create another variable and set it equal to the first : Car c2 = c1;
we're pointing c2 at the same car object that c1 points to (as opposed to pointing c2 at c1, which in turn points at the car). So if we have code like,
Car c1 = new Car(); Car[] cA = {c1, c1, c1, c1};
are we doing the same? Are we creating four *new* reference variables, each of which points at the same car (again as opposed to pointing them at c1 itself)? I think so, but want to make sure I'm understanding this correctly.
We are learning about how to pass objects into constructors. In our class, we made this following code:
public class InventoryItem { //fields private String description; private int units; //Add New constructor public InventoryItem(InventoryItem some_object) { description=some_object.description;
[Code] .....
As you can see the object of the same class is passed as the argument. Inside the constructor, our teacher did
some_object.description
This constructor, from my understanding, copies the description field and unit field to an object to the new object of class. Meanwhile, here is the demo class.
public class Cash { //Quanity Field and RetailItem Object field private int total_units; private Retail myRetail;
//Create first constructors public Cash() { this(0,null);
[Code] ....
I'm seriously need to understand the concept of making shallow copies and deep copies. My book has shown me that its better to perform deep copies and I have followed that method. if you guys look in my constructor of the cash class
//Create a a constructor public Cash(int total_units,Retail myRetail) { this.total_units=total_units; this.myRetail=new Retail(myRetail);
Apparently I have field in Cash Class named
Retail myRetail
When I pass in an argument from my demo, I'm making a copy of that object from the demo class. In my retail class, I have the following copy constructor .
//Make a copy constructor public Retail(Retail Object1) { Item_Name=Object1.Item_Name; Item_Number=Object1.Item_Number; // if I use this then my program would work//this.cost=Object1.cost;
//if I use this part of code below, my program won't work at all and I would get an error saying Exception in thread "main" java.lang.NullPointerException this.cost.Item_Cost=Object1.cost.Item_Cost; this.cost.Wholesale_Cost=Object1.cost.Wholesale_Cost; }
My question is why can't I perform a deep copy there. I know if I do
this.myRetail=myRetail
in my cash constructor it would work, but then the book says its not a good method;
public class Puppy{ int puppyAge; public Puppy(String name){ // This constructor has one parameter, name. System.out.println("Passed Name is :" + name ); } public void setAge( int age ){ puppyAge = age;
[Code] ....
How do I put 3 values of the each variable without replacing the last inputted one?
Like when I input "Tommy" and input another name "Gerald", "Tommy" won't be replaced by "Gerald" when I input again.
1. A reference variable can be of only one type and once declared, that type can never be changed(although the object it references can change)
2. A reference is a varaible ,so it can be reassigned to other objects(unless the reference is declared final)
3. A reference variable's type determines the methods that can be invoked on the object the variable is referencing.
4. A reference variable can refer to any object of the same type as the declared reference , or - it can refer to any subtype of the declared type.
5. A reference variable can be declared as a class type or an interface type. If the variable is declared as an interface type, it can reference any object of any class that implements the interface.
next.xhtml: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
[Code] ....
`MyQueueBean` is intended to give out a bird once only, to exactly one end-user. Because it's application scoped, and not session scoped, getting attributes directly from the bean would give inconsistent results.
The birds application is from Facelets Essentials Guide to JavaServer Faces View Definition Framework: [URL] ....
how is the variable passed to the file? Once it's passed, how is it referenced?
I don't understand why the object reference variable 'a' cannot be recast from a thisA object reference to a thisB object reference.Is it the case that once a reference variable is linked to a particular object type then it cannot switch object types later on.I am facing the Java Associate Developer exam soon and I am just clearing up some issues in my head around object reference variable assignment,
class thisA {} class thisB extends thisA { String testString = "test";} public class CastQuestion2 { public static void main(String[] args) { thisA a = new thisA(); thisB b = new thisB();
I am working on a project and it asks me to "Provide appropriate names and data types for each of the instance variables. Maintain two GVdie objects" under class fields. I am unsure as to what is being asked when asking for two objects as instance variables and how I would write that...
Say I have two classes, Author and Book, and I have 2 author objects and 10 book objects. I would like to know how to do two things:
1) Make some sort of connection that makes clear that author X wrote books A, B and F. 2) Call a method from a book object that is connected to an author.
Seeing as I don't know which books will be connected to an author, is there some way to call a method of an object bases on a variable object name? Something like call the getFirstPage() method for every book that is linked to author X?
Is it possible to combine two classes that I have defined to contain some of the same elements so that NetBeans stops giving me errors? I don't want to get rid of any necessary code, and if both classes are necessary, should I just rename one of them? One class is an ArrayList that I am using to write the information for employees entered to a text file "employee.txt." I also want users to be able to call on this information via employeeID in order to display employee information. The code is the following:
public ArrayList<Employee> getEmployees() { // if the employees file has already been read, don't read it again if (employees != null) return employees; employees = new ArrayList<>(); if (Files.exists(employeesPath)) // prevent the FileNotFoundException {
[code]....
The other class is a getEmployee class that I previously defined before attempting to read the information from the text file and display it in the console. It is as follows:
private void getEmployees() { try { // if the file doesn't exists, create it if (!Files.exists(employeesPath)) Files.createFile(employeesPath); BufferedReader in = new BufferedReader( new FileReader(employeesFile));
I remember reading that a super() call to parent no-argument constructor is automatically inserted by compiler. So, if i have a chained hierarchy of classes (starting at top, with Object), will there be a chain of super() calls, going from bottom to top in the chain ? Will a super() call be inserted in child, if i provide a no-argument constructor for this class ?
I am getting error in second constructor that I have created, it gives an error: cannot find symbol variable
package Objects;
import javax.swing.JOptionPane; public class Constructor { public static void main(String[] args) { Piggybank1 pg1 = new Piggybank1("Abhinav", 500); pg1.deposit(200); pg1.withdraw(10);
So while experimenting with constructors, repeating constructors with the same parameters, and with different parameters. I got an output -explaining how I got it.
I made 2 classes. a "support class" (has all the info) and an "execute class" (executes info).
Support:
package inschool; public class Constructors { String video; public Constructors() { video = "frozen";
[Code] ....
Execute:
package inschool; //this is part of Constructors class public class App{ public static void main(String[] args){
[Code] ....
The Output:
the video name is frozen Second constructor running Constructor running! the video name is frozen
Output Explanation:
constructor call number 1 and 3 are the same (essentially) and both refer to the same constructor.
My Question: if both call #1 and #3 refer to the same constructor, why is the output for #1 "the video name is frozen"
while the output for #3 used both methods in the accessed constructor-with the resulting output as "Constructor running!" and "the video name is frozen"
I double checked the output-and this time made sure to scroll up ... its the same result
class Test3 { } class MySub extends Test3 { } class Test4{ public static void main(String args[]) { MySub m = new MySub(); } }
I learned that if a class and its parent class both have no constructors, the compiler is supposed to complain. When I compiled Test4, i got no errors. why did it give no errors?
In Java code, write class called Student with the following features:
• a private instance variable int studentNumber that is initialized to zero. • a private instance variable String firstName; • a private instance variable String lastName; • a constructor which takes an integer argument and two String arguments to initializes the three respective data items. • a public method with signature equals(Student s) . . .
So far this is my code :
public class student { private int studentnumber = 0; public student () { firstname= "forename": lastname="surname": public student (integer studentnumber, string firstname, string lastname) { this.firstname= firstname this.lastname= lastname:
My question is how do i add the integer in the argument do i have to use int =? and how would i go about doing the public signature equals...
MyStack class have by default some fixed size of maximum elements, allow user of your class to specify in constructor what this maximum size is. Also add possibility to specify name of the stack in constructor. User can either create object without parameters, can specify only size or name, or both of them. And also override function toString(), that this code will print:
I was required to make a program that contains 3 data fields, 2 constructors, and 4 methods. I'm having a hell of a time trying to put some input into this, where the user would choose from 1 of the 3 data fields I made up for car prices and choose their vehicle. As far as the constructors go, I made a default one but I'm not sure on how to A) implement another constructor and how do I involve the input into this and C) where the methods go in that.
I'm thinking of putting the input first but that ruins my constructors? I realize I asked a lot, but this is an online class without a text, and I'm basically starving for knowledge. [code]
public class Vehicle{ int truck; int car; int van;
I have a class called Sprite which extends its several subclasses. Therefore, there are a lot of different Sprite classes, the thing is however, most of those subclasses have unique types of variables which I want to only be included in those particular subclasses, not anywhere else. For instance, I might have a variable measuring distance in one subclass, and in another subclass there might be a height variable inherent. I don't want the first subclass to have both variables, neither the second or the main class. Because before I initialize my subclasses, I need to create the constructors of those subclasses in the main Sprite class first because it doesn't have the unique variables which those classes consist of. How do I prevent that? Now I have to create the unique constructors and variables for every subclass, when I only want them in their associated classes.
I have to create an application that deals with maps.
I first have to create the instance variables for the class.
So very simply if my hashmap is going to consist of football clubs and players. Football clubs being a string value for the key and players being a set of strings for the values. How would I go about creating the instance variable in a class for this?
I can't seem to find anything that specifically deals with instance variables and constructors for maps.
A blood clinic has hired a team of software developers to build a custom application to track patients. The clinic needs to keep a record of each patient and his or her blood data. Ultimately, they want all of the information stored in a database. As a starting point, the development team leader informs the team that the application has to have a set of core classes that represent the “real-world” entities the program needs to deal with. As a developer on the team, your job is to build a Patient class along with a BloodData class so that each Patient contains a BloodData object. This principle is known as “composition.”
Building the Framework Begin by creating a public Java class named PatientBuilder that contains a main method. Then, in the same file, create a non-public class named Patient and another named BloodType. Save the file as PatientBuilder.java. Note: If this was a real development project, you would put each class into it’s own file and put the files in the same folder. By combining them all into one file, we avoid having to submit three separate files, making it easier to keep all your work in one place.The BloodData Class This class should hold all of the attributes to hold the data the clinic needs for a given patient’s blood. Implement the following capabilities to accomplish this objective:
• Create a field to hold a blood type. The four possible blood types are O, A,B, and AB. For this project, you can simply define the field as a String. • Create a field to hold the Rh factor. The two possible Rh factors are + and –.For this project, you can simply define the field as a String. • Create getter and setter methods for both fields. • Create a default constructor that sets the fields to “O” and “+” • Create an overloaded constructor that accepts two parameters – one for a proposed blood type, and another for a proposed Rh. The constructor should call the set methods and pass these parameter variables in to them.The Patient Class This class should hold all of the attributes to hold the data the clinic needs for a given patient’s blood. Implement the following capabilities to accomplish this objective: • Create a field to hold an ID number along with get and set methods. • Create a field to hold the patient’s age along with get and set methods. • Create a field to hold the BloodData for a Patient. When declaring the field, initialize it by instantiating a BloodData object. Create get and set methods. • Create a default constructor that sets the ID to “0”, age to 0, blood type of the BloodData object to “O”, and Rh value of the BloodData object to “+”. • Create an overloaded constructor that accepts the following parameters: ID,age, blood type, and Rh. The constructor should call the set methods for the field associated with each parameter.The PatientBuilder Class.This class should contain the main method from which the program runs. In that method, implement the following functionality:• Ask the user for the ID, age, blood type, and Rh factor of a Patient. • Create a Patient object, passing all of the data obtained from the user into the object. • Write the code necessary to display the ID, age, blood type, and Rh factor of the Patient by calling the appropriate get methods of the object.
MY CODE ( which does not compile since it is wrong...)
import java.util.Scanner; public class PatientBuilder { public static void main(String[] args){ String patientID; int patientAge; String patientRh; String patientBlood;