<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FClass_Definition%2FAccess_Control</id>
		<title>Java Tutorial/Class Definition/Access Control - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FClass_Definition%2FAccess_Control"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Access_Control&amp;action=history"/>
		<updated>2026-04-21T22:39:56Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Access_Control&amp;diff=4248&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Access_Control&amp;diff=4248&amp;oldid=prev"/>
				<updated>2010-06-01T05:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Access_Control&amp;diff=4247&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Access_Control&amp;diff=4247&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Access Control: four access control modifiers ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;There are four access control modifiers in Java:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;public,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;protected,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;private, and&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;the default access level.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  A Superclass Variable Can Reference a Subclass Object ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class RefDemo {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    BoxWeight weightbox = new BoxWeight(3, 5, 7, 8.37);&lt;br /&gt;
    Box plainbox = new Box();&lt;br /&gt;
    double vol;&lt;br /&gt;
    vol = weightbox.volume();&lt;br /&gt;
    System.out.println(&amp;quot;Volume of weightbox is &amp;quot; + vol);&lt;br /&gt;
    System.out.println(&amp;quot;Weight of weightbox is &amp;quot; + weightbox.weight);&lt;br /&gt;
    System.out.println();&lt;br /&gt;
    plainbox = weightbox;&lt;br /&gt;
    vol = plainbox.volume(); &lt;br /&gt;
    System.out.println(&amp;quot;Volume of plainbox is &amp;quot; + vol);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Box {&lt;br /&gt;
  private double width;&lt;br /&gt;
  private double height;&lt;br /&gt;
  private double depth;&lt;br /&gt;
  Box(Box ob) { &lt;br /&gt;
    width = ob.width;&lt;br /&gt;
    height = ob.height;&lt;br /&gt;
    depth = ob.depth;&lt;br /&gt;
  }&lt;br /&gt;
  Box(double w, double h, double d) {&lt;br /&gt;
    width = w;&lt;br /&gt;
    height = h;&lt;br /&gt;
    depth = d;&lt;br /&gt;
  }&lt;br /&gt;
  Box() {&lt;br /&gt;
    width = -1; &lt;br /&gt;
    height = -1;&lt;br /&gt;
    depth = -1; &lt;br /&gt;
  }&lt;br /&gt;
  Box(double len) {&lt;br /&gt;
    width = height = depth = len;&lt;br /&gt;
  }&lt;br /&gt;
  double volume() {&lt;br /&gt;
    return width * height * depth;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class BoxWeight extends Box {&lt;br /&gt;
  double weight;&lt;br /&gt;
  BoxWeight(BoxWeight ob) { &lt;br /&gt;
    super(ob);&lt;br /&gt;
    weight = ob.weight;&lt;br /&gt;
  }&lt;br /&gt;
  BoxWeight(double w, double h, double d, double m) {&lt;br /&gt;
    super(w, h, d); &lt;br /&gt;
    weight = m;&lt;br /&gt;
  }&lt;br /&gt;
  BoxWeight() {&lt;br /&gt;
    super();&lt;br /&gt;
    weight = -1;&lt;br /&gt;
  }&lt;br /&gt;
  BoxWeight(double len, double m) {&lt;br /&gt;
    super(len);&lt;br /&gt;
    weight = m;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Class Access Control Modifiers ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A class can have either the public or the default access control level.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;You make a class public by using the public access control modifier.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A class whose declaration bears no access control modifier has default access.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Class Member Access Control Modifiers ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Class members (methods, fields, constructors, etc) can have one of four access control levels:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;public,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;protected,&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;private, and&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;default access.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Access Level    From classes in other packages     From classes in the same package   From child classes   From the same class&lt;br /&gt;
public          yes                                yes                                yes                  yes&lt;br /&gt;
protected       no                                 yes                                yes                  yes&lt;br /&gt;
default         no                                 yes                                no                   yes&lt;br /&gt;
private         no                                 no                                 no                   yes&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The default access is sometimes called package private.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Access levels to constructors are the same as those for fields and methods.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Class Member Access Matrix ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Private    No modifier    Protected     Public&lt;br /&gt;
Same class                       Yes        Yes            Yes           Yes&lt;br /&gt;
Same package subclass            No         Yes            Yes           Yes&lt;br /&gt;
Same package non-subclass        No         Yes            Yes           Yes&lt;br /&gt;
Different package subclass       No         No             Yes           Yes&lt;br /&gt;
Different package non-subclass   No         No             No            Yes&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Composition with public objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Engine {&lt;br /&gt;
  public void start() {}&lt;br /&gt;
  public void rev() {}&lt;br /&gt;
  public void stop() {}&lt;br /&gt;
}&lt;br /&gt;
class Wheel {&lt;br /&gt;
  public void inflate(int psi) {}&lt;br /&gt;
}&lt;br /&gt;
class Window {&lt;br /&gt;
  public void rollup() {}&lt;br /&gt;
  public void rolldown() {}&lt;br /&gt;
}&lt;br /&gt;
class Door {&lt;br /&gt;
  public Window window = new Window();&lt;br /&gt;
  public void open() {}&lt;br /&gt;
  public void close() {}&lt;br /&gt;
}&lt;br /&gt;
class Car {&lt;br /&gt;
  public Engine engine = new Engine();&lt;br /&gt;
  public Wheel[] wheel = new Wheel[4];&lt;br /&gt;
  public Door&lt;br /&gt;
    left = new Door(),&lt;br /&gt;
    right = new Door(); // 2-door&lt;br /&gt;
  public Car() {&lt;br /&gt;
    for(int i = 0; i &amp;lt; 4; i++)&lt;br /&gt;
      wheel[i] = new Wheel();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass{&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Car car = new Car();&lt;br /&gt;
    car.left.window.rollup();&lt;br /&gt;
    car.wheel[0].inflate(72);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create a Singleton Object ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class MySingleton {&lt;br /&gt;
  // the static singleton object&lt;br /&gt;
  private static MySingleton theObject;&lt;br /&gt;
  private MySingleton() {&lt;br /&gt;
  }&lt;br /&gt;
  public static MySingleton createMySingleton() {&lt;br /&gt;
    if (theObject == null)&lt;br /&gt;
      theObject = new MySingleton();&lt;br /&gt;
    return theObject;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    MySingleton ms1 = MySingleton.createMySingleton();&lt;br /&gt;
    MySingleton ms2 = MySingleton.createMySingleton();&lt;br /&gt;
    System.out.println(ms1 == ms2);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Default access level ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When there is no access control modifier preceding a class declaration, the class has the default access level.&lt;br /&gt;
Classes with the default access level can only be used by other classes that belong to the same package.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Chapter class with the default access level is defined as follows.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Chapter {&lt;br /&gt;
    String title;&lt;br /&gt;
    int numberOfPages;&lt;br /&gt;
    public void review() {&lt;br /&gt;
        Page page = new Page();&lt;br /&gt;
        int sentenceCount = page.numberOfSentences;&lt;br /&gt;
        int pageNumber = page.getPageNumber();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  In a class hierarchy, private members remain private to their class. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//   This program contains an error and will not&lt;br /&gt;
//   compile.&lt;br /&gt;
   &lt;br /&gt;
class A {&lt;br /&gt;
  int i; // public by default&lt;br /&gt;
  private int j; // private to A&lt;br /&gt;
   &lt;br /&gt;
  void setij(int x, int y) {&lt;br /&gt;
    i = x;&lt;br /&gt;
    j = y;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
class B extends A {&lt;br /&gt;
  int total;&lt;br /&gt;
  void sum() {&lt;br /&gt;
    total = i + j; // ERROR, j is not accessible here&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
class Access {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    B subOb = new B();&lt;br /&gt;
   &lt;br /&gt;
    subOb.setij(10, 12);&lt;br /&gt;
   &lt;br /&gt;
    subOb.sum();&lt;br /&gt;
    System.out.println(&amp;quot;Total is &amp;quot; + subOb.total);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Private Override ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class PrivateOverride {&lt;br /&gt;
  private void f() {&lt;br /&gt;
    System.out.println(&amp;quot;private f()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    PrivateOverride po = new Derived();&lt;br /&gt;
    po.f();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Derived extends PrivateOverride {&lt;br /&gt;
  public void f() {&lt;br /&gt;
    System.out.println(&amp;quot;public f()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Specifying Access Attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import static java.lang.Math.sqrt;&lt;br /&gt;
class Point {&lt;br /&gt;
  public Point(double xVal, double yVal) {&lt;br /&gt;
    x = xVal;&lt;br /&gt;
    y = yVal;&lt;br /&gt;
  }&lt;br /&gt;
  public Point(final Point aPoint) {&lt;br /&gt;
    x = aPoint.x;&lt;br /&gt;
    y = aPoint.y;&lt;br /&gt;
  }&lt;br /&gt;
  public void move(double xDelta, double yDelta) {&lt;br /&gt;
    x += xDelta;&lt;br /&gt;
    y += yDelta;&lt;br /&gt;
  }&lt;br /&gt;
  public double distance(final Point aPoint) {&lt;br /&gt;
    return sqrt((x - aPoint.x) * (x - aPoint.x) + (y - aPoint.y) * (y - aPoint.y));&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return Double.toString(x) + &amp;quot;, &amp;quot; + y;&lt;br /&gt;
  }&lt;br /&gt;
  private double x;&lt;br /&gt;
  private double y;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The protected keyword ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class A {&lt;br /&gt;
  private String name;&lt;br /&gt;
  protected void set(String nm) {&lt;br /&gt;
    name = nm;&lt;br /&gt;
  }&lt;br /&gt;
  public A(String name) {&lt;br /&gt;
    this.name = name;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return &amp;quot;I&amp;quot;m &amp;quot; + name;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class B extends A {&lt;br /&gt;
  private int i;&lt;br /&gt;
  public B(String name, int i) {&lt;br /&gt;
    super(name);&lt;br /&gt;
    this.i = i;&lt;br /&gt;
  }&lt;br /&gt;
  public void change(String name, int i) {&lt;br /&gt;
    set(name); // Available because it&amp;quot;s protected&lt;br /&gt;
    this.i = i;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return &amp;quot; &amp;quot; + i + &amp;quot;: &amp;quot; + super.toString();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    B orc = new B(&amp;quot;A&amp;quot;, 12);&lt;br /&gt;
    System.out.println(orc);&lt;br /&gt;
    orc.change(&amp;quot;B&amp;quot;, 19);&lt;br /&gt;
    System.out.println(orc);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;12: I&amp;quot;m A&lt;br /&gt;
 19: I&amp;quot;m B&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The public Book class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package yourpackagename;&lt;br /&gt;
public class Book {&lt;br /&gt;
    String isbn;&lt;br /&gt;
    String title;&lt;br /&gt;
    int width;&lt;br /&gt;
    int height;&lt;br /&gt;
    int numberOfPages;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Book class is a member of the yourpackagename package and has five fields. &lt;br /&gt;
Since Book is public, it can be instantiated from any other classes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A public class must be saved in a file that has the same name as the class, and the extension must be java.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A Java source file can only contain one public class.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A Java source file can contain other classes that are not public.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Understand the effects of public and private access ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
  int a; // default access&lt;br /&gt;
  public int b; // public access&lt;br /&gt;
  private int c; // private access&lt;br /&gt;
  void setc(int i) {&lt;br /&gt;
    c = i;&lt;br /&gt;
  }&lt;br /&gt;
  int getc() { &lt;br /&gt;
    return c;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class AccessTest {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Test ob = new Test();&lt;br /&gt;
    ob.a = 10;&lt;br /&gt;
    ob.b = 20;&lt;br /&gt;
    ob.setc(100); &lt;br /&gt;
    System.out.println(&amp;quot;a, b, and c: &amp;quot; + ob.a + &amp;quot; &amp;quot; + ob.b + &amp;quot; &amp;quot; + ob.getc());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using Access Attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AttributePermitted AccessNo access attributeAccessible from methods in any class in the same packagepublicAnywhere as long as the class has been declared as publicprivateAccessible from methods inside the classprotectedAccessible from methods in the same package and from any subclass&lt;/div&gt;</summary>
			</entry>

	</feed>