Printing Default Value Of Int - When Is Variable Initialized
Nov 12, 2014
In the following code the print method prints the default value of int(zero) for the first time even when the variable i has been assigned a value of 4. Why?
class A1{
A1()
{
System.out.println("Inside constructor of A1()");
print();
}
void print()
{
System.out.println("A");
[Code] ....
Output:
Inside constructor of A1()
0
Inside constructor of B1()
4
I am reading input from a file that has following information:
line 1 = numbers of integers in array, line 2 = elements in array1, line 3 = elements in array2.
These lines constitute a test case. There are 1000 test cases in the input file.
So basically, I read the length of arrays, populate the arrays by reading from the file.
The code is below ( I have not included reading input code):
while(test_case<1000){ if (count == 1){ //count keeps track of lines in input file vec_length = Integer.parseInt (tokenizer.nextToken()); count++; continue; } if (count == 2){ //populates array1 vector1 = new int[vec_length]; for (int i = 0; i < vector1.length; i++) vector1[i] = Integer.parseInt (tokenizer.nextToken()); count++; continue; }
Array2 is populated using the same as above code. However when I use the following code:
for (int i=0; i<vec_length; i++) temp += vector1[i]*vector2[i];
I get " local variable vector1 and vector2 have not been initialized error". But both arrays have been initialized in the if{} block. Is it because initialization was local to if block?
I know what the error means but I don't think initializing the variable will make my code work as intended so I'm having a little dilemna here... here's the code and I'll highlight the part that is said to be not initialized:
Java Code:
import java.util.Scanner; public class ItemCost { public static void main (String []args){ int i=1,item=1,e=1, f=1, g=1; int items, d ; double gst, qst, subt, Tot = 1, PriceItems ;
[Code] ....
So I'm supposed to get the following output :
Java Code:
Please input the amount of items bought 2 Please input the price of the item 1 1 Please input the price of the item 2 2 Please input the rate of GST in % 20
Please input the rate of QST in % 18 mh_sh_highlight_all('java');
HOWEVER my program doesn't seem to add input of item 1, and 2 if I initialize subt= 0 initially. It'll only take the last value inputted in the loop. By the way, the increments are counters to count the amount of errors the user might input by accident ( or whatever). Some people have been pointing it out as useless but that's the only way I found it to work.
public class Test { private final int arg; private final Runnable runnable1 = new Runnable() { @Override public void run() { // No errors here, exactly as expected System.out.println("ARG: " + arg);
[Code] ....
The java compiler (version 1.8.0-b132) produces the following error when compiling this code:
"Error:(14, 46) java: variable arg might not have been initialized"
Actually, I do not expect the error here.
Both declarations 'runnable1' and 'runnable2' are essentially the same: these are just Runnable objects accessing value of the 'arg' field (which is initialized in the constructor).
The only difference between the declarations is that 'runnable1' - is an old-fashion instantiation of Runnable, whereas 'runnable2' - is an instantiation of Runnable via a lambda expression.
I want to use a try catch block, but I am not sure how to fix this problem:
int a;
try{ a = Integer.parseInt(A.getText()); } catch (Exception e){ Output1.setText("Error"); }
//do someting with a here
The purpose of the try-catch is to catch blank input.The problem with this is that underneath the try - catch I get an error saying that the variable might not have been initialized. I know why this happens. I know I could initialize the varaible before the try - catch, but there is no default or null I can set an int as. If I initialized it as 0, the blank input will no longer be catched.how to make this problem disappear?
I'm making a program that can read an input of English or Morse code and return an output of Morse code or English back. The English-->Morse works fine, but not Morse-->English. I'm pretty sure my solution lies in displaying the variable 'morseWord', but no matter where I put it, I always get an error saying the variable has not been initialized. Here's what it looks like now:
I am having trouble with getting output to be what I want. I can get the output when a user enters their values for month, day and time using a scanner object and they print correctly, but what I want is before they input values, to display the current date. Here is a snippet of what I am working with *these are in two separate files, the first has all the variables etc, the second has the main method.
In one java file:
Java Code:
private int numOfGuests, month, day, year; private GregorianCalendar eventDate = new GregorianCalendar(); public Event() { this("not assigned" , 0, new GregorianCalendar()); } public int getDay() {
[Code] ....
This gives me 0-0-0 as a result instead of current date.
I'm making a program where the user enters an ID number and can submit the amount of sales that person made for a specific product and write to a file. One of the things I have to do is making a running sum of the sales for each product for all people combined as well as an accumulation of the a persons sales every time he enters data. Everything seems to be working execpt my values like person1Total, person2Total...etx and product2Total.
When I try to write them to the file, they always come out at 0.0 even though they should be the sum of the indexes of the array sales.
I have 3 for loops here that do what I need them to do an individual basis. But, I can't seem to get them to work together. I need to calculate y=LN(E-k), compute the error and error squared value for y and print the variable when the value for y gives the lowest error squared value.
Java Code: //Calculating y=LN(E-k) and Initializing the Array for(int x=0; x<LNValues.length; x++) { //for(int y=0; y<9; y++) //{ double i = Math.log(eValues[x][0] - kValue); if(i > 0)
I continuously get an error for lines 34, 36, and 37 saying that the variables may not have been initialized.
import java.util.Scanner; import java.util.Random; public class MathTutor { public static void main(String[] args) { Random r = new Random (); Scanner input = new Scanner (System.in); /*int min=1; int max=10;*/ int num1,num2,operation; int n1= r.nextInt((9+1)+1); int n2= r.nextInt((9+1)+1); operation= r.nextInt(3); int correctAnswer; int userAnswer;
class Super { static String ID = "QBANK"; } class Sub extends Super{ static { System.out.print("In Sub"); } } public class Test{ public static void main(String[] args){ System.out.println(Sub.ID); } }
According to me output should be "QBANK" In Sub...BECAUSE sub default constructor will call super() constructor.. below is the definition in jls which i am unable to understand ....
A class or interface type T will be initialized at its first active use, which occurs if:
T is a class and a method actually declared in T (rather than inherited from a superclass) is invoked.
T is a class and a constructor for class T is invoked, or T1 is an array with element type T, and an array of type T1 is created.
A non-constant field declared in T (rather than inherited from a superclass or superinterface) is used or assigned. A constant field is one that is (explicitly or implicitly) both final and static, and that is initialized with the value of a compile-time constant expression . Java specifies that a reference to a constant field must be resolved at compile time to a copy of the compile-time constant value, so uses of such a field are never active uses.
All other uses of a type are passive. A reference to a field is an active use of only the class or interface that actually declares it, even though it might be referred to through the name of a subclass, a subinterface, or a class that implements an interface.
Take a look at this screenshot... my java integrated devlopment envirnment is telling me I have a null pointer on a line with three variables ALL which were initialized.
I thought a null pointer was called when a variable doesn't get initialized.
Edit: Here is the java file and resources being used: [URL]
class GVector { // TODO: declare a private array to save the vector coordinates // Creates a mathematical vector of d dimensions, initialized at 0 public GVector(int d) { // TODO: implementation
[Code] ....
I'm confused with what type of array I need to use to save the vector coordinates and what to put in Gvector. Is it a constructor?
i have this following codes and im trying to make a java program that calls an object value initialized.
public class TestClass { public String name; public int age; public void myMessage() { System.out.println("Hello I'm" + name + "and i'm" + age + "years old"); } }
what i want is to put the following codes of the object.. so once i compile and run the project it executes the value of an object from the method i defined above.
again i am facing problem i am able to run Listener class also the ContextListener is initialised but it is giving me error on Tomcat 6.0 command prompt
Here is my Listener Class Sample.java i am able to compile the code but it is giving java.lang.nullpointer exception at runtime on Tomcat.exe Is there is problem in my code
The term "Local variable" is related to scope. That is a local variable is one which is defined in a certain block of code, and its scope is confined inside that block of code.And a "Member variable" is simple an instance variable.
I read in a discussion forum that when local variables are declared (example code below), their name reservation takes place in memory but they are not automatically initialized to anything. On the other hand, when member variables are declared, they are automatically initialized to null by default.
Java Code: public void myFunction () { int [] myInt; // A local, member variable (because "static" keyword is not there) declared } mh_sh_highlight_all('java');
So it seems that they are comparing local variables and member variables. While I think a member variable can also be be local in a block of code, isn't it?
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.
The LocalStudent class inherits the Student class. The IDE states an error of "no default constructor in Student class".I understand that if a LocalStudent object is created, the default constructor of its superclass (aka Student class) will be called implicitly.there is no LocalStudent object being created, so why is the default constructor of Student being called ?
The default constructor of LocalStudent is also overloaded by the created no-arg constructor containining subjects = null; . So there is no call to the superclass default constructor from the default constructor of LocalStudent.
public class Student { private char year1; public Student(String name, char year){ year1 = year; } public char getYear(){ return year1;
Will I'm tying in my code to set a default number for the JTextField that when the user decide not to put any numbers. Like let say that I want the textfield set to 0 , so then the user do not file it it won't make any problem to the program because its already has a default number.
Note: This is a small part of my code. when I leave it empty it take the 0 as a value, However, when I write in text field it also take the value of a 0 and the finalTotal is also = to 0.what I'm doing wrong.