I know that SystemClasses are disabled. so options 'b' and 'e' are disabled. option 'd' is exactly what is given in the statement so it is enabled. Given that classes in the com package and its subpackages are disabled so options 'a' and 'c' are also disabled. Is it correct? But given option 'c' is enabled. How come option 'c' is enabled?
Hi Gayatri, i dont know about assert. can you please explain me. sri.
gayathri mukkavilli
Greenhorn
Joined: Mar 09, 2005
Posts: 20
posted
0
Hi sri, I will explain about the assertions briefly here. If you need more about this you can refer to any java books or websites.
An assertion is a statement in java containing a boolean expression that is assumed to be true when the statement is executed. The system reports an "AssertionError" if the expression evaluates to false. It is used for debugging purposes:
Expression1 should always result in a boolean value.
Expression2 can be anything that results in a value. The value is used to generate a String message that displays more debugging information. For instance:
class AssertionTest { int a ; public void func() { assert (a > 0): "a is negative" ; // Remaining code } }
In the above code, the assertion expression is true if a is positive. If a is negative or zero, an AssertionError is thrown with the message "a is negative."
Assertions are disabled by default. To compile with assertions enabled, you need to use the source 1.4 flag:
javac -source 1.4 AssertionTest.java
To enable assertions at runtime, use the -enableassertions or -ea flags.
For selective disabling of assertions at runtime, use the -da or -disableassertions flags.
For enabling assertions in the system classes, use the -esa or -dsa flags. Assertions can also be enabled or disabled on a package basis.
java -ea AssertionTest
Appropriate and inappropriate use of assertions: You can place an assertion at any location that you don't expect to be reached normally. Assertions can be used to validate the parameters passed to a private method. However, assertions should not be used to validate parameters passed to public methods because a public method must check its arguments regardless of whether assertions are enabled or not. However, you can test postconditions with assertions in both public and non-public methods. Also, assertions should not change the state of a program in any manner.
Hope you understand and let me know if you have any questions. Good luck
kiennjal shah
Ranch Hand
Joined: Jun 17, 2004
Posts: 31
posted
0
I do not understand as to how dot.com.boom has assertions enabled since com package has assertions disabled. so com and all subpackages would not recognize assert as a keyword.
then, howcome (c) is one of the correct answers for Q2?
thanks
-Kiennjal
gayathri mukkavilli
Greenhorn
Joined: Mar 09, 2005
Posts: 20
posted
0
Hi, That was my doubt too? How come option c is correct. According to my knowledge only 'd' is enabled so it is the only one answer I guess but given 'c' and 'd' are correct.
Here the com and its subpackages are disabled.. so the option c is enabled since "dot" is not a subpackage of com.. bcoz we are invoking like dot.com and not com.dot.. Also the option d is disabled as it is given in the disable assertion part..how come the option d is enabled???
Thanks,<br />Prabha
gayathri mukkavilli
Greenhorn
Joined: Mar 09, 2005
Posts: 20
posted
0
Hi, The statement
java -ea -da:com... net.example.LaunchTranslator
means, run net.example.LaunchTranslator with enable assertions for all classes and packages except com and its subpackages. so option 'd' is enabled since it is not come under com and its subpackages. -da belongs to only com... not belongs to net.example.LaunchTranslator