Wednesday, August 20, 2008

Java Access specifiers

Hi,
in java there is one more interesting concept about access specifiers
the following four access speciers are there in java
private
default (no access specifier keep blank)
protected
public
Now the explanation as below with example
Private
the private access specifier for only with in the class accessible not other than class
example
public class Person
{
private String name;
}
class Employee extends Person
{
public String helloString()
{
return name; // here it will show compilation error Person.name is not visible because
private access specifier used in Person class for name
}

}
public
we used this specifier variables, methods any where in any class
in other packages also we can use this variables and methods
example
package com.test;
public class Person
{
public String name = "siva";
}
package com.test1;
import com.test.Person;
public class Person extends Person
{
public String helloString()
{
return name;
}
}
if we take this scenario it will work fine here one more concept you need to know
Person class is extending Person class only why it is not showing exception
Because one Person class in one package
another Person class in another package
so public access specifier you can use any package any class you need to extend that classes
accordingly.
default(if you are not specifing any access specier it is default)
this access is package level access
example
package com.test
public Class Person
{
String name = "siva";
public static void main(String args[])
{
Employee e = new Employee()
System.out.println("Name is "+e.getPersonDetails());
}
}
class Employee extends Person
{
public String getPersonDetails()
{
return name;
}
}
in this Example you need not identify one more concept.
in one package two classes are there but one class having public one is having nothing
in any package accepts only one public class

protected
one of most important concept for interviews
suppose we have two packages
1 com.test;
2 com.test1;
package com.test; having one class with protected method
package com.test1;
two class one class not overriding protected method directly using that method.
now the second class in com.test1 package is extending the same package class
the protected method is available only for first class of in second package i.e com.test1
not for second class
if you are try to access that method it will through exception.
the good example is Object class Clone method it is protected

Wednesday, July 2, 2008

Java Interview Concepts

Hi,
i am writing the java interview concepts i am not giving complete details i am giving the overall structure for glance when ever interview is there it is for quick reference i hope this might help
Object class Details
Object Class is Super class of all java classes
Object class having the following methods
public final Class getClass()
public int hashCode()
public boolean equals(Object obj)
protected Object clone() throws CloneNotSupportedException
public String toString()
public final void notify()
public final void notifyAll()
public final void wait(long timeout) throws InterruptedException
protected void finalize() throws Throwable
--------etc
you will get all the implementation details and some where most of the people
ask about these details some questions are
Can we override finalize() method
Ans: yes we can override this method when ever we know object is going out of memory
that type object we call in finalize method. this work automatically done by java only
it has good alogitihm to remove the object from memory.
notify(), wait(),notifyAll() are related to threads but why there are overrided in
Object Class
Ans: this methods not only for Threads it is external resources also that's why they are
overrided inside Object class
Difference b/n equal (==) operator and equals() method why should we override
Ans: in equals() method also they are using == operator only but when ever we want to
compare content of the two objects and both objects content has same but when
we compare it it return false so we should have to override equals() in our class.
Now i am going to explain methods in Objects class with examples
1. toString()
Syntax: public String toString()
{
return " ";
}
> in String class toString() method is overrided. when ever you are working with String class you no need to override toString() method
.
example without overriding toString()
public class Person
{
private String mname;
public Person(String aname)
{
mname= aname;
}
public static void main(String args[])
{
Person p = new Person("siva");
System.out.println("Name is " + p);
or //toString() method is Object class method so it will come for
any class
System.out.println("Name is " + p.toString())
}

}
ANS: Name is ClassName i.e Person@some hexadecimal value
here hexa decimal value is where the object stored in memory area
so result is not correct we need correct result for that we have to override
toString() method
attach this code for Person class
public String toString()
{
return mname;
}
Now run the program you will get result as ----- Name is siva

AddToAny

Contact Form

Name

Email *

Message *