I am totally new to Java. What is the purpose of this method?
Flow of the int x=3; like where does the 3 go step by step?
Passing Primitive Data Type Arguments (from oracle java tutorials)
Primitive arguments, such as an int or a double, are passed into methods by value. This means that any changes to the values of the parameters exist only within the scope of the method. When the method returns, the parameters are gone and any changes to them are lost. Here is an example:
public class PassPrimitiveByValue { public static void main(String[] args) { int x = 3; // invoke passMethod() with // x as argument passMethod(x);
Primitive arguments, such as an int or a double, are passed into methods by value. This means that any changes to the values of the parameters exist only within the scope of the method. When the method returns, the parameters are gone and any changes to them are lost.
Reference data type parameters, such as objects, are also passed into methods by value. This means that when the method returns, the passed-in reference still references the same object as before. However, the values of the object's fields can be changed in the method, if they have the proper access level.For example, consider a method in an arbitrary class that moves Circle objects:
public void moveCircle(Circle circle, int deltaX, int deltaY) { // code to move origin of // circle to x+deltaX, y+deltaY circle.setX(circle.getX() + deltaX); circle.setY(circle.getY() + deltaY);
// code to assign a new // reference to circle circle = new Circle(0, 0); }
Let the method be invoked with these arguments: moveCircle(myCircle, 23, 56)
Inside the method, circle initially refers to myCircle. The method changes the x and y coordinates of the object that circle references (i.e., myCircle) by 23 and 56, respectively. These changes will persist when the method returns. Then circle is assigned a reference to a new Circle object with x = y = 0. This reassignment has no permanence, however, because the reference was passed in by value and cannot change. Within the method, the object pointed to by circle has changed, but, when the method returns, myCircle still references the same Circle object as before the method was called.
I have set up a project in Eclipse 3.1 and am using java 5.0 compiler.
Here's my folder structure in Eclipse
Java Code:
DFSRemoteClientTestClient.java mh_sh_highlight_all('java'); DFS is the project in Eclipse
And this is how it looks my java class
Java Code:
package RemoteClient; import java.util.*; // other imports public class TestClient { public static void main(String [] args) throws ServiceInvocationException { // business logic here .... } } mh_sh_highlight_all('java');
So, basically, my java class is just a simple class with a main function.
Now when I build my project, using Project->Clean...
Then I get this as an error at the very first line where i specify the package
This is the error:
Java Code: The type Class is not generic; it cannot be parameterized with arguments <T> mh_sh_highlight_all('java');
I want to get the max volume from a file that I stored in an arraylist but it don't know if this is the way to do it. also I don't know how to print the method in the main method. here is the method that will get the max volume
public Shape3D maxVolume(ArrayList<Shape3D> shapes ){ Shape3D currentMax; int currentMaxIndex = 0; for ( int i = 1; i < shapes.size(); i++)
[Code] ....
This is my shape3D class
public abstract class Shape3D implements Comparable<Shape3D> { private String type; public double radious; public double height;
I have a case in which I want to sort two types of ArrayLists (using quicksort) and the method originally coded only accepts a String ArrayList. The problem is that now I want to sort an ArrayList of type int but couldn't . . . so I decided to overload the method. Since it looks very ugly to copy and paste the same chunk of code only to change the method signature I wondered if there is a better way to make this method more dynamic and be able to take in different types of ArrayLists.
My code:
private ArrayList<String> sort(ArrayList<String> ar, int lo, int hi){ if (lo < hi){ int splitPoint = partition(ar, lo, hi); sort(ar, lo, splitPoint); sort(ar, splitPoint +1, hi);
If you have final int i = 1; short s = 1; switch(s) { case i: System.out.println(i); }
it runs fine. Note that the switch expression is of type short (2 bytes) and the case constant is of type int (4 bytes).My question is: Is the type irrelevant as long as the value is within the boundaries of the type of the switch expression?I have the feeling that this is true since:
byte b = 127; final int i = 127; switch(b) { case i: System.out.println(i); }
This runs fine again, but if I change the literal assigned to i to 128, which is out of range for type byte, then the compiler complains.Is it true that in the first example the short variable and in the second example the byte variable (the switch expressions) are first implicitly converted to an int and then compared with the case constants?
Got a problem with generics, which I'm still pretty new at. Here's a program that compiles fine:
import java.util.ArrayList; import javax.swing.JComponent; public class Experiments { public static void main(String[] args) { ListHolder holder = new ListHolder();
[Code] ....
It's useless, but it compiles. If I change Line 14, however, to add a generic type parameter to the ListHolder class, Line 10 no longer compiles:
import java.util.ArrayList; import javax.swing.JComponent; public class Experiments { public static void main(String[] args) { ListHolder holder = new ListHolder();
[Code] ....
I get this error:
Uncompilable source code - incompatible types: java.lang.Object cannot be converted to javax.swing.JComponent at experiments.Experiments.main(Experiments.java:10)
Apparently, the introduction of the type parameter leaves the compiler thinking that aList is of type Object. I can cast it, like this:
JComponent c = ((ArrayList<JComponent>)holder.aList).iterator().next();
That makes the compiler happy, but why is it necessary? How does adding the (unused) type parameter to the ListHolder class end up making the compiler think the aList member of an instance of ListHolder is of type Object?
I'm trying to parse and compare the content of a zip file. However I'm stuck at what SHOULD be a very simple problem, however I can't seem to find a solution. I have done the following:
ZipInputStream zin1 = new ZipInputStream(fin); ZipEntry ze1 = null; fin2 = new FileInputStream(fileName2); ZipInputStream zin2 = new ZipInputStream(fin2); ZipEntry ze2 = null; //fin.close(); ze1 = zin1.getNextEntry(); ze2 = zin2.getNextEntry();
Which gives me the first entry of each zipfile as a ZipEntry type object. I have tried getting the path of the file (inside the zip file) and using this to create a File type object. This does not seem to work though I get:
Exception in thread "main" java.io.FileNotFoundException: My DocumentsmetadatacoreProperties.xml (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileReader.<init>(Unknown Source)
And this is because I get a null return from trying to create the File file1 = new File(correctLocation);
I guess I cannot access the file inside a zip file this way. So my question is how can I make a ZipEntry type object into a File type object?
I am going through Thinking in Java, 4th Ed and I came across the section that talks about overloading variable arguments. I tried out a piece of code from the book. (Method and class names not exactly the same).
public class Varargs { public static void m1(Character... args) { System.out.println("Character");
[code]....
In the above code, the compiler throws an 'Ambiguous for the type varargs' error. The error goes away if the first method is changed to:
public static void m1(char c, Character... args)
why there is ambiguity in the first piece of code and not the second.
Now everything works in Netbeans but running it from the command line, i get an error message ".java uses unchecked and unsafe operations".I have added a bit more code to the code above
for (int i = 0; i < args.length; i++) { System.out.println("args[" + i + "]: " + args[i]); }
Just not sure how to run it from the command line,
I am new to JAVA. I need to execute a program, based on the OS. If I am on Mac, the program is a .x and if It is on Windows the program is .exe. The program also requires a line of commands attached to it (i.e. relap5.(x) or (exe) -i inputFile -o outputFile -r restartFile -s stripFile
Here is my coding
String in = " -i ", tfIntdta.getText(); String rst = " -r ", tfRstplt.getText(); String out = " -o ", tfOutdta.getText(); String strp = " -s ", tfStpdta.getText(); if tfStpdta.contains(".csv") String run = in, rst, out, strp; else String run = in. rst, out; // I want to execute either a .x file or .exe file, depending on if I am // running the app on windows or mac run relap5.(x) or (exe) (string run goes here)
I am writing a simple program in Java, where I call a method and pass some variables (namely, min and max) as arguments. This method is recursive, so the same arguments are again passed on in each recursive call.
I need to update these variables in recursive calls so that when the calling method uses them, it uses updated values. As it might sound confusing, here is sample code :
// Function 1. void func1() { //Call func2. func2 (int hd, int min, int max, Map<String, String> map); //Other stuff. } // Function 2.
[code]....
As you can see, min and max are updated after each recursive call returns, based on conditions. However, these changes aren't reflected in original min and max, which were used by func1 while calling func2. As far as I know, this happens due to call by value mechanism being used by Java while passing arguments. If I declare min and max as instance variables in the class, my problem is solved. But, I want to know whether there's any other way to update these variables so that changes in original min and max are reflected. Yes, I can return them as an array of 2 elements each time while returning, but it didn't seem a good solution to me.
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...
I am looking to write a constructor (in a herited class) to initialize the name of a single piece and its orientation using values passed as parameters. If no value is given for guidance , it returns "none" , I do it in this way but i am not sure it is the right way:
I have a test that covers Objects & Classes, Importing Classes and Polymorphism. One of the essay questions will be: Explain two ways to pass arguments to methods and give examples. I was reading the book and found Pass by Value and Pass by Reference. Is this the two ways to pass arguments?
I am trying to create an array where each object includes a service description, price, and time in minutes. I have a Service class and a SalonReport class:
import java.util.*; public class Service { public String serviceDescription; public double servicePrice; public int timeMinutes;
[Code] ....
When I compile this, I get an error message that says:
SalonReport.java:8: error: constructor Service in class Service cannot be applied to given types; salonServices[0] = new Service("Cut", 8.00, 15); ^ required: no arguments found: String,double,int reason: actual and formal argument lists differ in length
What this error message means and how I can correct it? I am confused because my SalonService() method has (String service, double price, int minutes), and each object is listed in that exact order.
What I'm supposed to do is use the time class and take the command line arguments and print them as the start and end times and then calculate the elapsed time between the two. My issue (hopefully my only as I have been working on this all day now) is that I cannot call the command line arguments using LocalTime. Below is what I have so far.
public class Clock { private LocalTime startTime; private LocalTime stopTime; //default constructor-initialize startTime to current time public Clock(){ this.startTime=LocalTime.now();
I want to take command line arguments and pass them to a paint method. This is a test program that will just draw some equations. How can I get the input array clinputs[] to be used in public void paint( Graphics g) ?
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LinePlot extends JFrame { public LinePlot() { super( "Line Plot" ); setSize(800,600);
I have a method that draws a polygon on the screen:
public void poly(List<Point> points) { //code }
For the usage of the method, it makes no difference whether points is an array or a List. In fact, switching doesn't even change any of the code in the method since I use a for-each loop. So, my question is, is it a better practice to use a List as an argument, or an array when the method itself doesn't care about which to use?