<?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%2FDeclare_Object</id>
		<title>Java Tutorial/Class Definition/Declare Object - История изменений</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%2FDeclare_Object"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Declare_Object&amp;action=history"/>
		<updated>2026-04-21T22:30:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Class_Definition/Declare_Object&amp;diff=4254&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/Declare_Object&amp;diff=4254&amp;oldid=prev"/>
				<updated>2010-06-01T05:01:09Z</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/Declare_Object&amp;diff=4253&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/Declare_Object&amp;diff=4253&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;==  Demonstrates that all classes descend from the type java.lang.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;
/*&lt;br /&gt;
 *     file: ObjectIsGod.java&lt;br /&gt;
 *  package: oreilly.hcj.review&lt;br /&gt;
 *&lt;br /&gt;
 * This software is granted under the terms of the Common Public License,&lt;br /&gt;
 * CPL, which may be found at the following URL:&lt;br /&gt;
 * http://www-124.ibm.ru/developerworks/oss/CPLv1.0.htm&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.&lt;br /&gt;
 * All Rights are Reserved by the various authors.&lt;br /&gt;
 *&lt;br /&gt;
########## DO NOT EDIT ABOVE THIS LINE ########## */&lt;br /&gt;
&lt;br /&gt;
/**  &lt;br /&gt;
 * Demonstrates that all classes descend from the type &amp;lt;tt&amp;gt;java.lang.Object&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 *&lt;br /&gt;
 * @author &lt;br /&gt;
 * @version $Revision: 1.3 $&lt;br /&gt;
 */&lt;br /&gt;
public class ObjectIsGod {&lt;br /&gt;
  /** &lt;br /&gt;
   * Main Method.&lt;br /&gt;
   *&lt;br /&gt;
   * @param args Command line arguments.&lt;br /&gt;
   */&lt;br /&gt;
  public static final void main(final String[] args) {&lt;br /&gt;
    System.out.println(SomeClass.class + &amp;quot; --|&amp;gt; &amp;quot; + SomeClass.class.getSuperclass());&lt;br /&gt;
    System.out.println(SomeOtherClass.class + &amp;quot; --|&amp;gt; &amp;quot;&lt;br /&gt;
                       + SomeOtherClass.class.getSuperclass());&lt;br /&gt;
  }&lt;br /&gt;
  /**  &lt;br /&gt;
   * Class with implicit java.lang.Object inheritance.&lt;br /&gt;
   */&lt;br /&gt;
  public class SomeClass {&lt;br /&gt;
  }&lt;br /&gt;
  /**  &lt;br /&gt;
   * Class with explicit java.lang.Object inheritance.&lt;br /&gt;
   */&lt;br /&gt;
  public class SomeOtherClass extends Object {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/* ########## End of File ########## */&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;
==  Demonstration of the Pointers and References Concept ==&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;
/*&lt;br /&gt;
 *     file: PointersAndReferences.java&lt;br /&gt;
 *  package: oreilly.hcj.review&lt;br /&gt;
 *&lt;br /&gt;
 * This software is granted under the terms of the Common Public License,&lt;br /&gt;
 * CPL, which may be found at the following URL:&lt;br /&gt;
 * http://www-124.ibm.ru/developerworks/oss/CPLv1.0.htm&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.&lt;br /&gt;
 * All Rights are Reserved by the various authors.&lt;br /&gt;
 *&lt;br /&gt;
########## DO NOT EDIT ABOVE THIS LINE ########## */&lt;br /&gt;
&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
/**  &lt;br /&gt;
 * Demonstration of the Pointers and References Concept.&lt;br /&gt;
 *&lt;br /&gt;
 * @author &lt;br /&gt;
 * @version $Revision: 1.3 $&lt;br /&gt;
 */&lt;br /&gt;
public class PointersAndReferences {&lt;br /&gt;
  /** &lt;br /&gt;
   * Main method.&lt;br /&gt;
   *&lt;br /&gt;
   * @param args Command Line arguments.&lt;br /&gt;
   */&lt;br /&gt;
  public static final void main(final String[] args) {&lt;br /&gt;
    Vector source = new Vector();&lt;br /&gt;
    source.add(&amp;quot;O&amp;quot;Reilly&amp;quot;);&lt;br /&gt;
    source.add(&amp;quot;XML&amp;quot;);&lt;br /&gt;
    source.add(&amp;quot;Java&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Original Vector&amp;quot;);&lt;br /&gt;
    System.out.println(source.toString());&lt;br /&gt;
    // -- Try the first method. &lt;br /&gt;
    someMethod(source);&lt;br /&gt;
    System.out.println(&amp;quot;After first method.&amp;quot;);&lt;br /&gt;
    System.out.println(source.toString());&lt;br /&gt;
    // -- Try the second method. &lt;br /&gt;
    someOtherMethod(source);&lt;br /&gt;
    System.out.println(&amp;quot;After second method.&amp;quot;);&lt;br /&gt;
    System.out.println(source.toString());&lt;br /&gt;
  }&lt;br /&gt;
  /** &lt;br /&gt;
   * Try using a vector without changing it.&lt;br /&gt;
   *&lt;br /&gt;
   * @param source The source Vector.&lt;br /&gt;
   */&lt;br /&gt;
  public static void someMethod(Vector source) {&lt;br /&gt;
    Vector target = source;&lt;br /&gt;
    target.add(&amp;quot;Swing&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  /** &lt;br /&gt;
   * Try using a vector without changing it with final parameter.&lt;br /&gt;
   *&lt;br /&gt;
   * @param source The source Vector.&lt;br /&gt;
   */&lt;br /&gt;
  public static void someOtherMethod(final Vector source) {&lt;br /&gt;
    Vector target = source;&lt;br /&gt;
    target.add(&amp;quot;JFC&amp;quot;);  // ouch, still changes v.&lt;br /&gt;
    // source = new Vector(); // compiler error.&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/* ########## End of File ########## */&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;
==  Implements a manager of lists that stores the lists by key ==&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;
/*&lt;br /&gt;
 *     file: Inference.java&lt;br /&gt;
 *  package: oreilly.hcj.tiger&lt;br /&gt;
 *&lt;br /&gt;
 * This software is granted under the terms of the Common Public License,&lt;br /&gt;
 * CPL, which may be found at the following URL:&lt;br /&gt;
 * http://www-124.ibm.ru/developerworks/oss/CPLv1.0.htm&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.&lt;br /&gt;
 * All Rights are Reserved by the various authors.&lt;br /&gt;
 *&lt;br /&gt;
 ########## DO NOT EDIT ABOVE THIS LINE ########## */&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
/**&lt;br /&gt;
 * Implements a manager of lists that stores the lists by key.&lt;br /&gt;
 */&lt;br /&gt;
public class InferenceDemo {&lt;br /&gt;
  static int callCount = 0;&lt;br /&gt;
  /** Second. */&lt;br /&gt;
  public static &amp;lt;Type extends Number&amp;gt; Type someMethod(final Type num) {&lt;br /&gt;
    System.out.print(&amp;quot;Second==&amp;gt; &amp;quot;);&lt;br /&gt;
    return num;&lt;br /&gt;
  }&lt;br /&gt;
  /** Third. */&lt;br /&gt;
  public static &amp;lt;Type&amp;gt; Type someMethod(final Type obj, List&amp;lt;Type&amp;gt; list) {&lt;br /&gt;
    System.out.print(&amp;quot;Third==&amp;gt; &amp;quot;);&lt;br /&gt;
    return obj;&lt;br /&gt;
  }&lt;br /&gt;
  /** Fourth. */&lt;br /&gt;
  public static &amp;lt;Type&amp;gt; List&amp;lt;Type&amp;gt; someMethod() {&lt;br /&gt;
    System.out.print(&amp;quot;Fourth==&amp;gt; &amp;quot;);&lt;br /&gt;
    return new ArrayList&amp;lt;Type&amp;gt;();&lt;br /&gt;
  }&lt;br /&gt;
  /** Fifth. */&lt;br /&gt;
  public static void someMethod(final Object obj) {&lt;br /&gt;
    System.out.print(&amp;quot;Fifth==&amp;gt; &amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  /** Sixth. */&lt;br /&gt;
  public static void someMethod(final String str) {&lt;br /&gt;
    System.out.print(&amp;quot;Sixth==&amp;gt; &amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  /** Seventh. */&lt;br /&gt;
  public static &amp;lt;Type&amp;gt; Type someOtherMethod(final Type obj, List&amp;lt;? extends Type&amp;gt; list) {&lt;br /&gt;
    System.out.print(&amp;quot;Seventh==&amp;gt; &amp;quot;);&lt;br /&gt;
    return obj;&lt;br /&gt;
  }&lt;br /&gt;
  /** Demonstrate the rules. */&lt;br /&gt;
  public final static void main(final String[] args) {&lt;br /&gt;
    System.out.println();&lt;br /&gt;
    // Picks Sixth&lt;br /&gt;
    System.out.print(&amp;quot;\n1) &amp;quot;);&lt;br /&gt;
    someMethod(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
    // Ambiguous, wont compile.&lt;br /&gt;
    // System.out.print(&amp;quot;\n2) &amp;quot;);&lt;br /&gt;
    // someMethod(new C());&lt;br /&gt;
    // Ambiguous, wont compile.&lt;br /&gt;
    // First and Fifth mask each other and can never be called.&lt;br /&gt;
    // System.out.print(&amp;quot;\n3) &amp;quot;);&lt;br /&gt;
    // someMethod(new Object());&lt;br /&gt;
    // Picks Second&lt;br /&gt;
    System.out.print(&amp;quot;\n5) &amp;quot;);&lt;br /&gt;
    someMethod(new Integer(5));&lt;br /&gt;
    // Picks Second&lt;br /&gt;
    System.out.print(&amp;quot;\n6) &amp;quot;);&lt;br /&gt;
    someMethod(5);&lt;br /&gt;
    // Picks Fourth&lt;br /&gt;
    System.out.print(&amp;quot;\n7) &amp;quot;);&lt;br /&gt;
    List&amp;lt;Integer&amp;gt; listOne = someMethod();&lt;br /&gt;
    listOne.add(new Integer(5));&lt;br /&gt;
    System.out.print(&amp;quot;\n7a) &amp;quot;);&lt;br /&gt;
    List&amp;lt;String&amp;gt; listTwo = someMethod();&lt;br /&gt;
    listTwo.add(new String(&amp;quot;Hello&amp;quot;));&lt;br /&gt;
    System.out.print(&amp;quot;\n7b) &amp;quot;);&lt;br /&gt;
    Object listThree = someMethod();&lt;br /&gt;
    System.out.println(listThree.getClass());&lt;br /&gt;
    // listThree.add( ... ); // Cant put anything into this list&lt;br /&gt;
    // -- Make some lists --&lt;br /&gt;
    List&amp;lt;A&amp;gt; listOfA = new ArrayList&amp;lt;A&amp;gt;();&lt;br /&gt;
    listOfA.add(new A());&lt;br /&gt;
    List&amp;lt;B&amp;gt; listOfB = new ArrayList&amp;lt;B&amp;gt;();&lt;br /&gt;
    listOfB.add(new B());&lt;br /&gt;
    // Picks&lt;br /&gt;
    System.out.print(&amp;quot;\n8) &amp;quot;);&lt;br /&gt;
    someMethod(5, new ArrayList&amp;lt;Integer&amp;gt;());&lt;br /&gt;
    // Wont compile: No such type. Since A can not necessarily be promoted to B.&lt;br /&gt;
    // System.out.print(&amp;quot;9) &amp;quot;);&lt;br /&gt;
    // someMethod(new A(), listOfB);&lt;br /&gt;
    // Picks Three: Works because B can be demoted to A&lt;br /&gt;
    System.out.print(&amp;quot;\n10) &amp;quot;);&lt;br /&gt;
    someMethod(new B(), listOfA);&lt;br /&gt;
    // Picks Seventh&lt;br /&gt;
    System.out.print(&amp;quot;\n11) &amp;quot;);&lt;br /&gt;
    someOtherMethod(new A(), listOfB);&lt;br /&gt;
    // Picks Seventh&lt;br /&gt;
    // Works even though it probably shouldnt. The someOtherMethod() signature&lt;br /&gt;
    // implies&lt;br /&gt;
    // that the type of the component of the ist should be a subtype of the type&lt;br /&gt;
    // used&lt;br /&gt;
    // for obj. However, in this case first is a List&amp;lt;A&amp;gt; and A clearly isnt a&lt;br /&gt;
    // subtype&lt;br /&gt;
    // of B. Is this a bug?&lt;br /&gt;
    System.out.print(&amp;quot;\n12) &amp;quot;);&lt;br /&gt;
    someOtherMethod(new B(), listOfA);&lt;br /&gt;
    // Really weird as the two types arent even remotely related. This should&lt;br /&gt;
    // probably&lt;br /&gt;
    // be rejected by the compiler but it doesnt seem to be enforcing its&lt;br /&gt;
    // bounds.&lt;br /&gt;
    System.out.print(&amp;quot;\n13) &amp;quot;);&lt;br /&gt;
    List&amp;lt;String&amp;gt; listOfString = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
    listOfString.add(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
    someOtherMethod(new Integer(5), listOfString);&lt;br /&gt;
    // Doesnt work even though the spec says it should:&lt;br /&gt;
    // System.out.print(I&amp;quot;14)&amp;quot;);&lt;br /&gt;
    // A value = &amp;lt;A&amp;gt;someMethod(new B(), new ArrayList&amp;lt;A&amp;gt;());&lt;br /&gt;
    // Picks Fourth: The type of the list returned by SomeMethod is&lt;br /&gt;
    // List&amp;lt;Integer&amp;gt;&lt;br /&gt;
    System.out.print(&amp;quot;\n15) &amp;quot;);&lt;br /&gt;
    someMethod(5, someMethod());&lt;br /&gt;
    // Picks Fourth: The type of the list returned by SomeMethod is List&amp;lt;String&amp;gt;&lt;br /&gt;
    System.out.print(&amp;quot;\n16) &amp;quot;);&lt;br /&gt;
    someMethod(&amp;quot;Hello&amp;quot;, someMethod());&lt;br /&gt;
  }&lt;br /&gt;
  private static class A {&lt;br /&gt;
  }&lt;br /&gt;
  private static class B extends A {&lt;br /&gt;
  }&lt;br /&gt;
  private static class C extends B {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/* ########## End of File ########## */&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 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 Point {&lt;br /&gt;
  double x;&lt;br /&gt;
  double y;&lt;br /&gt;
  Point(double xVal, double yVal) {&lt;br /&gt;
    x = xVal;&lt;br /&gt;
    y = yVal;&lt;br /&gt;
  }&lt;br /&gt;
  Point(final Point oldPoint) {&lt;br /&gt;
    x = oldPoint.x;&lt;br /&gt;
    y = oldPoint.y;&lt;br /&gt;
  }&lt;br /&gt;
  void move(double xDelta, double yDelta) {&lt;br /&gt;
    x += xDelta;&lt;br /&gt;
    y += yDelta;&lt;br /&gt;
  }&lt;br /&gt;
  double distance(final Point aPoint) {&lt;br /&gt;
    return Math.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;
}&lt;br /&gt;
// You can use Point objects in the definition of the class Line:&lt;br /&gt;
class Line {&lt;br /&gt;
  Point start;&lt;br /&gt;
  Point end;&lt;br /&gt;
  Line(final Point start, final Point end) {&lt;br /&gt;
    this.start = new Point(start);&lt;br /&gt;
    this.end = new Point(end);&lt;br /&gt;
  }&lt;br /&gt;
  Line(double xStart, double yStart, double xEnd, double yEnd) {&lt;br /&gt;
    start = new Point(xStart, yStart);&lt;br /&gt;
    end = new Point(xEnd, yEnd);&lt;br /&gt;
  }&lt;br /&gt;
  double length() {&lt;br /&gt;
    return start.distance(end);&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return &amp;quot;(&amp;quot; + start + &amp;quot;):(&amp;quot; + end + &amp;quot;)&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class MainClass{&lt;br /&gt;
  public static void main(String[] arg){&lt;br /&gt;
    Line l1 = new Line(new Point(1,2), new Point(3,4));&lt;br /&gt;
    &lt;br /&gt;
    System.out.println(l1);&lt;br /&gt;
  }&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;(1.0, 2.0):(3.0, 4.0)&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>