Java 17 Recipes


Download 3.2 Mb.
Pdf ko'rish
bet22/245
Sana02.06.2024
Hajmi3.2 Mb.
#1839910
1   ...   18   19   20   21   22   23   24   25   ...   245
Bog'liq
Java 17 Recipes

Listing 1-5. Visibility and the Concept of Fields
package org.java17recipes.chapter01.recipe01_08;
class TestClass {
private long visibleOnlyInThisClass;
double visibleFromEntirePackage;
void setLong (long val) {
visibleOnlyInThisClass = val;
}
long getLong () {
return visibleOnlyInThisClass;
}
}
ChApteR 1 GettInG StARted wIth JAvA 17


31
public class VisibilityExample {
public static void main(String[] args) {
TestClass tc = new TestClass();
tc.setLong(32768);
tc.visibleFromEntirePackage = 3.1415926535;
System.out.println(tc.getLong());
System.out.println(tc.visibleFromEntirePackage);
}
}
The following is the output.
32768
3.1415926535
Members are typically bound to an object of a class. Each class object contains an 
instance of each member in the class. However, you can also define static fields that 
occur only once and with a single value that is shared by all instances of the given class. 
Listing 
1-6
 illustrates the difference.
Listing 1-6. Static Fields
package org.java17recipes.chapter01.recipe01_08;
class StaticDemo {
public static boolean oneValueForAllObjects = false;
}
public class StaticFieldsExample {
public static void main (String[] args) {
StaticDemo sd1 = new StaticDemo();
StaticDemo sd2 = new StaticDemo();
System.out.println(sd1.oneValueForAllObjects);
System.out.println(sd2.oneValueForAllObjects);
sd1.oneValueForAllObjects = true;
System.out.println(sd1.oneValueForAllObjects);
System.out.println(sd2.oneValueForAllObjects);
}
}
ChApteR 1 GettInG StARted wIth JAvA 17


32
Listing 
1-6
 produces the following output.
false
false
true
true
The field oneValueForAllObjects was set to true only for the class instance named 
sd1. Yet it is true, for instance, sd2 also. This is because of the keyword static used in 
declaring that field. Static fields occur one time for all objects of their class. Moreover, 
the compiler in the IDE raises a warning about that. In fact, it should be used through 
StaticDemo.oneValueForAllObjects.

Download 3.2 Mb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   245




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling