Win a copy of GANs in ActionE this week in the AI forum
or WebAssembly in Action in the JavaScript forum!

Satish Ray

Greenhorn
+ Follow
since Jul 13, 2006
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Satish Ray

Hi,

My doubt is whether we can use transient and volatile variables respectively along with static modifier legally? or is it that there is no necessity for using transient and volatile modifiers along with static modifier?
13 years ago
In Kathy sierra SCJP 1.5 book i have read that transient and volatile modifiers apply only for instance variables.

Might be they are irrelevant in the following sense as I think:
1)transient ->during serialization only the object state is flattened and the class variables(I mean static varibles) wont come into picture here.
2)volatile->is meaningful only for instance varibles and not static variables, as only the objects state is being protected from any simultaneous modification.

Correct me if I am wrong.

I also compiled and ran the below program using static-transient, static-volatile combination of variables. it is perfectly compiling and running fine.

class A{
static volatile int x;
static transient int y;

public static void main(String[] args){
A a = new A();
System.out.println(x);
System.out.println(a.x);
System.out.println(y);
System.out.println(a.y);
}
}

Can any body please clarify my doubt?
13 years ago
Can anybody explain me what exactly are covariant returns?
13 years ago
Hi Sampath,


IDomain Technolgies is the authorized prometric center. One of my friend has taken SCWCD exam here.

For booking the slot, you have to call on the mobile# or landline that you are already having with you. Please call atleast 2 days before and confirm your slot.

For identification purpose please carry any one of the following
1)your passport
2)Company Id

I think this will help you.

Good Luck
Hi Ernest,

Thnaks for the nice pointers you had provided on this topic. Also I am having some concerns after going through the specifications where in which I have raised the doubts in my earlier posted reply. Can you explain me as what is meant by the involvement of the subclass in the implementation of the object of the superclass as is explained in the java specification 6.6.7 example.
13 years ago
I am grateful to all of you for providing such a nice explanation which i cannot get in any books.
I could able to understand the same now. But still some gaps are there in my understanding the concept. Please provide me the necessary explanation for the queries rasied below.

Thnaks in advance to one and all.

Under section 6.6.2 of the java specifications,

Quote:
-----------------------------------------------------------
6.6.2 Details on protected Access
A protected member or constructor of an object may be accessed from outside the package in which it is declared only by code that is responsible for the implementation of that object.
----------------------------------------------------------------------

Here what does it mean "the implementation of that object" --in what way?

Also,
under section 6.6.2.1 of the java specifications,

Quote:
--------------------------------------------------------------
6.6.2.1 Access to a protected Member
Let C be the class in which a protected member m is declared. Access is permitted only within the body of a subclass S of C. In addition, if Id denotes an instance field or instance method, then:

If the access is by a qualified name Q.Id, where Q is an ExpressionName, then the access is permitted if and only if the type of the expression Q is S or a subclass of S.

If the access is by a field access expression E.Id, where E is a Primary expression, or by a method invocation expression E.Id(. . .), where E is a Primary expression, then the access is permitted if and only if the type of E is S or a subclass of S.
_________________________________________________________________
what is the difference between ExpressionName (Q) and the Primary expression?


Quote:
_________________________________________________________________________________
Also in example 6.6.7 of the java specifications:
6.6.7 Example: protected Fields, Methods, and Constructors
Consider this example, where the points package declares:

package points;
public class Point {
protected int x, y;
void warp(threePoint.Point3d a) {
if (a.z > 0) // compile-time error: cannot access a.z
a.delta(this);
}
}

and the threePoint package declares:

package threePoint;
import points.Point;
public class Point3d extends Point {
protected int z;
public void delta(Point p) {
p.x += this.x; // compile-time error: cannot access p.x
p.y += this.y; // compile-time error: cannot access p.y

}
public void delta3d(Point3d q) {
q.x += this.x;
q.y += this.y;
q.z += this.z;
}
}

which defines a class Point3d. A compile-time error occurs in the method delta here: it cannot access the protected members x and y of its parameter p, because while Point3d (the class in which the references to fields x and y occur) is a subclass of Point (the class in which x and y are declared), it is not involved in the implementation of a Point (the type of the parameter p). The method delta3d can access the protected members of its parameter q, because the class Point3d is a subclass of Point and is involved in the implementation of a Point3d.

The method delta could try to cast (�5.5, �15.16) its parameter to be a Point3d, but this cast would fail, causing an exception, if the class of p at run time were not Point3d.

A compile-time error also occurs in the method warp: it cannot access the protected member z of its parameter a, because while the class Point (the class in which the reference to field z occurs) is involved in the implementation of a Point3d (the type of the parameter a), it is not a subclass of Point3d (the class in which z is declared).
___________________________________________________________________________________
what I didnot understand here is:
a)Point3d is not involved in the implementation of a Point.
b)Point3d, a subclass of Point is involved in the implementation of a Point3d.

Actually what does this imply:-->involving/not involved in the implementation of an object.
I am aware that we can implement the interfaces, where the classes implementing the interfaces have the contract with the interface being implemented by the corresponding classes. But what is this: implementation of an object?
13 years ago
Hi All,
Thanks for the quick comments.
I agree with the explanation provided so far. But if protected is used as a specifier for the class then what happens in this case?
13 years ago
I am still not very convinced with the explanation.

i)If a remove the comment in line2 and use the reference of superclassA in the code of subclassB, why cannot I access the protected members of the superclassA in SubClassB?

package pkgA;
public class SuperClassA {
protected int superClassVarA;
protected void superClassMethodA() {}

}

package pkgB;
import pkgA.*;

public class SubClassB extends SuperClassA {

SubClassB objRefB = new SubClassB(); ----->line1
//SuperClassA objRefA=new SuperClassA();----->line2
void subclassMethodB(SuperClassA objRefA) {
objRefB.superClassMethodA();
objRefB.superClassVarA = 5;
objRefA.superClassMethodA(); //this will not compile

objRefA.superClassVarA = 10; //this will not compile
}
}

ii) what if I comment line2 in the above code and I directly use objRefA in the code of SubClassB as shown below:
objRefA.superClassMethodA();
objRefA.superClassVarA = 10;

what happens in this case and why?

Please provide me the expalantion for both the questions (i)& (ii) I have raised in this request.
13 years ago
why cannot we have the access modifiers for a class other than public and default. If so why? Can't we use the specifiers private or protected. I know we can use these specifiers for the inner classes. But what about the classes other than the inner classes?
13 years ago
Hi Jesper,
Thanks for your reply.

Here is my concern:

package pkgA;
public class SuperClassA {
protected int superClassVarA;
protected void superClassMethodA() {}

}

package pkgB;
import pkgA.*;

public class SubClassB extends SuperClassA {

SubClassB objRefB = new SubClassB(); ----->line1
//SuperClassA objRefA=new SuperClassA();----->line2
void subclassMethodB(SuperClassA objRefA) {
objRefB.superClassMethodA();
objRefB.superClassVarA = 5;
objRefA.superClassMethodA(); //this will not compile

objRefA.superClassVarA = 10; //this will not compile
}
}

The compiler throws an error saying that superClassMethodA() has protected access in pkgA.superClassMethodA();

Even when I create the reference objRefA of SuperClassA in class SubClassB as commented in line2
in the above code the compiler shows the same message.

My concern is why cannot i access the protected member of the SuperClassA in one pakage from the SubClassB in the other package using the reference of the SuperClassA.
13 years ago
why cannot we access protected members of SuperClass from the SubClass using the reference of the SuperClass?
13 years ago
Hi Dawson,
Thanks its working.
13 years ago
JSP
Hi Dawson,

Yeah I am looking out for the same functionality. But can we be albe to access the variable used in html/jsp inside javascript.

i tried with this earlier, but I am not getting the output. Are there any other options?
13 years ago
JSP
Hi,

I want to pass a variable used in html/jsp to javascript. How can I do this?
please respond.
13 years ago
JSP
How can I create a portlet clone in IBM websphere portal server v5.0 test environment?
13 years ago