From 5e5001a462916fda66fda8996e0fe85f73779a76 Mon Sep 17 00:00:00 2001
From: crupest <crupest@outlook.com>
Date: Wed, 14 Apr 2021 09:20:56 +0800
Subject: import(life): Add java practice.

---
 works/life/java-practice/.gitignore                |  60 +++++++++++
 works/life/java-practice/javatest/.classpath       |  10 ++
 works/life/java-practice/javatest/.project         |  17 +++
 .../javatest/src/javatest/ArrayDemo2.java          |  13 +++
 .../javatest/src/javatest/ArrayDemo3.java          |  31 ++++++
 .../java-practice/javatest/src/javatest/E0201.java |  21 ++++
 .../java-practice/javatest/src/javatest/E0202.java |  12 +++
 .../java-practice/javatest/src/javatest/E0203.java |  26 +++++
 .../java-practice/javatest/src/javatest/E0204.java |  90 ++++++++++++++++
 .../java-practice/javatest/src/javatest/Main.java  |   7 ++
 .../javatest/src/javatest/MethodDemo2.java         |  30 ++++++
 .../javatest/src/javatest/e0301/Circle.java        |  33 ++++++
 .../javatest/src/javatest/e0302/Rational.java      |  45 ++++++++
 .../src/javatest/e0302/TestRationalClass.java      |  12 +++
 .../javatest/src/javatest/e0401/Program.java       |  72 +++++++++++++
 .../javatest/src/javatest/e0402/Person.java        |  40 +++++++
 .../javatest/src/javatest/p0301/AreaAndLength.java | 120 +++++++++++++++++++++
 .../javatest/src/javatest/p0302/Example.java       |  47 ++++++++
 .../javatest/src/javatest/p0303/SunRise.java       |  12 +++
 .../src/javatest/p0303/sub/SquareEquation.java     |  46 ++++++++
 .../javatest/src/javatest/p0401/Example.java       | 113 +++++++++++++++++++
 .../javatest/src/javatest/p0402/Subroutine.java    |  23 ++++
 .../javatest/src/javatest/p0403/Parallelogram.java |  31 ++++++
 .../javatest/src/javatest/p0404/Quadrangle.java    |  36 +++++++
 24 files changed, 947 insertions(+)
 create mode 100644 works/life/java-practice/.gitignore
 create mode 100644 works/life/java-practice/javatest/.classpath
 create mode 100644 works/life/java-practice/javatest/.project
 create mode 100644 works/life/java-practice/javatest/src/javatest/ArrayDemo2.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/ArrayDemo3.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/E0201.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/E0202.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/E0203.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/E0204.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/Main.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/MethodDemo2.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/e0301/Circle.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/e0302/Rational.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/e0302/TestRationalClass.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/e0401/Program.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/e0402/Person.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0301/AreaAndLength.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0302/Example.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0303/SunRise.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0303/sub/SquareEquation.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0401/Example.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0402/Subroutine.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0403/Parallelogram.java
 create mode 100644 works/life/java-practice/javatest/src/javatest/p0404/Quadrangle.java

(limited to 'works')

diff --git a/works/life/java-practice/.gitignore b/works/life/java-practice/.gitignore
new file mode 100644
index 0000000..acec74a
--- /dev/null
+++ b/works/life/java-practice/.gitignore
@@ -0,0 +1,60 @@
+.metadata
+bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
+.cproject
+
+# CDT- autotools
+.autotools
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Annotation Processing
+.apt_generated/
+.apt_generated_test/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+
+# Uncomment this line if you wish to ignore the project description file.
+# Typically, this file would be tracked if it contains build/dependency configurations:
+#.project
diff --git a/works/life/java-practice/javatest/.classpath b/works/life/java-practice/javatest/.classpath
new file mode 100644
index 0000000..6bf1eac
--- /dev/null
+++ b/works/life/java-practice/javatest/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-15">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/works/life/java-practice/javatest/.project b/works/life/java-practice/javatest/.project
new file mode 100644
index 0000000..34df9f4
--- /dev/null
+++ b/works/life/java-practice/javatest/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>javatest</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/works/life/java-practice/javatest/src/javatest/ArrayDemo2.java b/works/life/java-practice/javatest/src/javatest/ArrayDemo2.java
new file mode 100644
index 0000000..8d7b2ae
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/ArrayDemo2.java
@@ -0,0 +1,13 @@
+package javatest;
+
+public class ArrayDemo2 {
+	public static void main(String args[]) {
+		int score[][] = { { 10, 3 }, { -1, 119, -51 }, { 100, 56, 90, 49 } };
+		for (int i = 0; i < score.length; i++) {
+			for (int j = 0; j < score[i].length; j++) {
+				System.out.print(score[i][j] + "\t");
+			}
+			System.out.println("");
+		}
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/ArrayDemo3.java b/works/life/java-practice/javatest/src/javatest/ArrayDemo3.java
new file mode 100644
index 0000000..f053b4b
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/ArrayDemo3.java
@@ -0,0 +1,31 @@
+package javatest;
+
+public class ArrayDemo3 {
+	public static void main(String args[]) {
+		int score[] = { 25, 78, 35, 84, 69, 74, 12, 56 };
+		int age[] = { 32, 52, 12, 63, 42, 15, 75, 23, 56 };
+		sort(score); // �������򷽷�
+		print(score); // �����������
+		System.out.println("\n-----------------------------------------");
+		sort(age);
+		print(age);
+	}
+
+	public static void sort(int temp[]) { // ��������
+		for (int i = 1; i < temp.length; i++) { // ð���㷨
+			for (int j = 0; j < temp.length; j++) {
+				if (temp[i] < temp[j]) {
+					int x = temp[i];
+					temp[i] = temp[j];
+					temp[j] = x;
+				}
+			}
+		}
+	}
+
+	public static void print(int x[]) { // �������
+		for (int i = 0; i < x.length; i++) {
+			System.out.print(x[i] + " , ");
+		}
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/E0201.java b/works/life/java-practice/javatest/src/javatest/E0201.java
new file mode 100644
index 0000000..5cda62a
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/E0201.java
@@ -0,0 +1,21 @@
+package javatest;
+
+public class E0201 {
+	public static int max(int a, int b) {
+		return a > b ? a : b;
+	}
+
+	public static double max(double a, double b) {
+		return a > b ? a : b;
+	}
+
+	public static int max(int a, int b, int c) {
+		return max(a, max(b, c));
+	}
+
+	public static void main(String[] args) {
+		System.out.println(max(1, 2));
+		System.out.println(max(2.2, 3.3));
+		System.out.println(max(1, 2, 3));
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/E0202.java b/works/life/java-practice/javatest/src/javatest/E0202.java
new file mode 100644
index 0000000..c74beec
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/E0202.java
@@ -0,0 +1,12 @@
+package javatest;
+
+public class E0202 {
+	public static int F(int n) {
+		if (n == 1 || n == 2) return 1;
+		return F(n - 2) + F(n - 1);
+	}
+	
+	public static void main(String[] args) {
+		System.out.println(F(6));
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/E0203.java b/works/life/java-practice/javatest/src/javatest/E0203.java
new file mode 100644
index 0000000..7bec46f
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/E0203.java
@@ -0,0 +1,26 @@
+package javatest;
+
+public class E0203 {
+	public static void main(String[] args) {
+		int[] array = new int[] { 1, 2, 3, 4 };
+		intArray.printArray(array);
+		System.out.println();
+		intArray.printArray(intArray.reverse(array));
+	}
+}
+
+class intArray {
+	public static void printArray(int[] array) {
+		for (int i = 0; i < array.length; i++) {
+			System.out.print(array[i] + " ");
+		}
+	}
+
+	public static int[] reverse(int[] list) {
+		int[] result = new int[list.length];
+		for (int i = 0; i < list.length; i++) {
+			result[i] = list[list.length - i - 1];
+		}
+		return result;
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/E0204.java b/works/life/java-practice/javatest/src/javatest/E0204.java
new file mode 100644
index 0000000..c79e33c
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/E0204.java
@@ -0,0 +1,90 @@
+package javatest;
+
+import java.util.HashSet;
+import java.util.Random;
+
+public class E0204 {
+	public static void main(String[] args) {
+		Random r = new Random();
+		HashSet<Card> set = new HashSet<Card>();
+
+		while (set.size() != 4) {
+			set.add(Card.random(r));
+		}
+
+		for (Card card : set) {
+			System.out.println(card);
+		}
+	}
+}
+
+class Card {
+	public static final String[] suits = { "Spades", "Hearts", "Clubs", "Diamonds" };
+	public static final String[] ranks = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen",
+			"King" };
+
+	public static Card random(Random r) {
+		return new Card(suits[r.nextInt(suits.length)], ranks[r.nextInt(ranks.length)]);
+	}
+
+	public Card(String suit, String rank) {
+		super();
+		this.suit = suit;
+		this.rank = rank;
+	}
+
+	private String suit;
+	private String rank;
+
+	public String getSuit() {
+		return suit;
+	}
+
+	public void setSuit(String suit) {
+		this.suit = suit;
+	}
+
+	public String getRank() {
+		return rank;
+	}
+
+	public void setRank(String rank) {
+		this.rank = rank;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((rank == null) ? 0 : rank.hashCode());
+		result = prime * result + ((suit == null) ? 0 : suit.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		Card other = (Card) obj;
+		if (rank == null) {
+			if (other.rank != null)
+				return false;
+		} else if (!rank.equals(other.rank))
+			return false;
+		if (suit == null) {
+			if (other.suit != null)
+				return false;
+		} else if (!suit.equals(other.suit))
+			return false;
+		return true;
+	}
+
+	@Override
+	public String toString() {
+		return "Card [suit=" + suit + ", rank=" + rank + "]";
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/Main.java b/works/life/java-practice/javatest/src/javatest/Main.java
new file mode 100644
index 0000000..4c4a70c
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/Main.java
@@ -0,0 +1,7 @@
+package javatest;
+
+public class Main {
+	public static void main(String[] args) {
+		System.out.println("Hello world!");
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/MethodDemo2.java b/works/life/java-practice/javatest/src/javatest/MethodDemo2.java
new file mode 100644
index 0000000..161de5d
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/MethodDemo2.java
@@ -0,0 +1,30 @@
+package javatest;
+
+public class MethodDemo2 {
+	public static void main(String args[]) {
+		int one = add(29, 58); // ����addOne()����
+		int three = add(25, 58, 10); // ����addOne()����
+		float two = add(26.35f, -12.84f); // ����addTwo()����
+		System.out.println("add(int x,int y)=" + one);
+		System.out.println("add(int x,int y,int z)=" + three);
+		System.out.println("add(float x,float y)=" + two);
+	}
+
+	public static int add(int x, int y) { // ���巽�������������ӷ�������һ����������
+		int temp = 0; // tempΪ�ֲ�������ֻ�ڴ˷�������Ч
+		temp = x + y;
+		return temp; // ���ؼ�����
+	}
+
+	public static int add(int x, int y, int z) { // ���巽�������������ӷ�������һ����������
+		int temp = 0; // tempΪ�ֲ�������ֻ�ڴ˷�������Ч
+		temp = x + y + z;
+		return temp; // ���ؼ�����
+	}
+
+	public static float add(float x, float y) {
+		float temp = 0;
+		temp = x + y;
+		return temp;
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/e0301/Circle.java b/works/life/java-practice/javatest/src/javatest/e0301/Circle.java
new file mode 100644
index 0000000..ec380ec
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/e0301/Circle.java
@@ -0,0 +1,33 @@
+package javatest.e0301;
+
+public class Circle {
+	private static int numOfObjects = 0;
+
+	public static int getNumOfObjects() {
+		return numOfObjects;
+	}
+
+	private double radius;
+
+	public Circle(double radius) {
+		this.radius = radius;
+		numOfObjects++;
+	}
+
+	public double getArea() {
+		return radius * radius * Math.PI;
+	}
+
+	public static void printCircle(Circle c) {
+		System.out.println("Radius of circle is " + c.radius);
+		System.out.println("Area of circle is " + c.getArea());
+	}
+
+	public static void main(String[] args) {
+		Circle c1 = new Circle(2);
+		Circle c2 = new Circle(3);
+		Circle.printCircle(c1);
+		Circle.printCircle(c2);
+		System.out.println("Num of objects is " + Circle.getNumOfObjects());
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/e0302/Rational.java b/works/life/java-practice/javatest/src/javatest/e0302/Rational.java
new file mode 100644
index 0000000..772cf12
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/e0302/Rational.java
@@ -0,0 +1,45 @@
+package javatest.e0302;
+
+public class Rational {
+	private long numerator;
+	private long denominator;
+
+	private static long gcd(long a, long b) {
+		return b != 0 ? gcd(b, a % b) : a;
+	}
+
+	public Rational(long numerator, long denominator) {
+		long d = gcd(numerator, denominator);
+		this.numerator = numerator / d;
+		this.denominator = denominator / d;
+	}
+
+	public Rational add(Rational secondRational) {
+		long d = gcd(this.denominator, secondRational.denominator);
+		long dd = this.denominator / d * secondRational.denominator;
+		long a = this.numerator * (dd / this.denominator);
+		long b = secondRational.numerator * (dd / secondRational.denominator);
+		return new Rational(a + b, dd);
+	}
+
+	public Rational subtract(Rational secondRational) {
+		long d = gcd(this.denominator, secondRational.denominator);
+		long dd = this.denominator / d * secondRational.denominator;
+		long a = this.numerator * (dd / this.denominator);
+		long b = secondRational.numerator * (dd / secondRational.denominator);
+		return new Rational(a - b, dd);
+	}
+
+	public Rational multiply(Rational secondRational) {
+		return new Rational(this.numerator * secondRational.numerator, this.denominator * secondRational.denominator);
+	}
+
+	public Rational divide(Rational secondRational) {
+		return new Rational(this.numerator * secondRational.denominator, this.denominator * secondRational.numerator);
+	}
+
+	@Override
+	public String toString() {
+		return denominator == 1 ? Long.toString(numerator) : numerator + "/" + denominator;
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/e0302/TestRationalClass.java b/works/life/java-practice/javatest/src/javatest/e0302/TestRationalClass.java
new file mode 100644
index 0000000..2be02b9
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/e0302/TestRationalClass.java
@@ -0,0 +1,12 @@
+package javatest.e0302;
+
+public class TestRationalClass {
+	public static void main(String[] args) {
+		Rational r1 = new Rational(2, 1);
+		Rational r2 = new Rational(2, 3);
+		System.out.println(r1 + " + " + r2 + " = " + r1.add(r2));
+		System.out.println(r1 + " - " + r2 + " = " + r1.subtract(r2));
+		System.out.println(r1 + " * " + r2 + " = " + r1.multiply(r2));
+		System.out.println(r1 + " / " + r2 + " = " + r1.divide(r2));		
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/e0401/Program.java b/works/life/java-practice/javatest/src/javatest/e0401/Program.java
new file mode 100644
index 0000000..c7472b8
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/e0401/Program.java
@@ -0,0 +1,72 @@
+package javatest.e0401;
+
+public class Program {
+	public static boolean equalArea(GeometricObject object1, GeometricObject object2) {
+		return object1.findArea() == object2.findArea();
+	}
+
+	public static void displayGeometricObject(GeometricObject object) {
+		if (object instanceof Circle) {
+			System.out.println("A Circle.");
+		} else if (object instanceof Rectangle) {
+			System.out.println("A Rectangle.");
+		}
+	}
+
+	public static void main(String[] args) {
+		Circle circle = new Circle(3);
+		Rectangle rectangle = new Rectangle(2, 4);
+
+		System.out.println(equalArea(circle, rectangle));
+		displayGeometricObject(circle);
+		displayGeometricObject(rectangle);
+	}
+}
+
+abstract class GeometricObject {
+	protected String color;
+
+	public abstract double findArea();
+
+	public abstract double findPerimeter();
+}
+
+class Circle extends GeometricObject {
+
+	private double radius;
+
+	public Circle(double radius) {
+		this.radius = radius;
+	}
+
+	@Override
+	public double findArea() {
+		return radius * radius * Math.PI;
+	}
+
+	@Override
+	public double findPerimeter() {
+		return radius * 2 * Math.PI;
+	}
+}
+
+class Rectangle extends GeometricObject {
+
+	private double width;
+	private double height;
+
+	public Rectangle(double width, double height) {
+		this.width = width;
+		this.height = height;
+	}
+
+	@Override
+	public double findArea() {
+		return width * height;
+	}
+
+	@Override
+	public double findPerimeter() {
+		return (width + height) * 2;
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/e0402/Person.java b/works/life/java-practice/javatest/src/javatest/e0402/Person.java
new file mode 100644
index 0000000..b7e0e14
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/e0402/Person.java
@@ -0,0 +1,40 @@
+package javatest.e0402;
+
+public class Person {
+	public void cut() {
+	}
+
+	public static void main(String[] args) {
+		Person player = new Player();
+		Person cooker = new Cooker();
+		Person cuter = new Cuter();
+
+		player.cut();
+		cooker.cut();
+		cuter.cut();
+	}
+}
+
+/** ��Ա */
+class Player extends Person {
+	/** ��д */
+	public void cut() {
+		System.out.println("ֹͣ��Ϸ");
+	}
+}
+
+/** ��ʦ */
+class Cooker extends Person {
+	/** ��д */
+	public void cut() {
+		System.out.println("��ʼ�в�");
+	}
+}
+
+/** ��ʦ */
+class Cuter extends Person {
+	/** ��д */
+	public void cut() {
+		System.out.println("��ʼ��ͷ��");
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0301/AreaAndLength.java b/works/life/java-practice/javatest/src/javatest/p0301/AreaAndLength.java
new file mode 100644
index 0000000..5216fb1
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0301/AreaAndLength.java
@@ -0,0 +1,120 @@
+package javatest.p0301;
+
+class Trangle {
+	double sideA, sideB, sideC, area, length;
+	boolean boo;
+
+	public Trangle(double a, double b, double c) {
+		sideA = a;
+		sideB = b;
+		sideC = c;// ����a,b,c�ֱ�ֵ��sideA,sideB,sideC
+		if (a + b > c && a + c > b && c + b > a) // a,b,c���������ε���������ʽ
+		{
+			boo = true; // ��boo��ֵ��
+		} else {
+			boo = false; // ��boo��ֵ��
+		}
+	}
+
+	double getLength() {
+		if (boo) {
+			length = sideA + sideB + sideC;
+			return length;
+		} else {
+			System.out.println("����һ��������,���ܼ����ܳ�");
+			return 0;
+		}
+		// �����壬Ҫ������length��ֵ������
+	}
+
+	public double getArea() {
+		if (boo) {
+			double p = (sideA + sideB + sideC) / 2.0;
+			area = Math.sqrt(p * (p - sideA) * (p - sideB) * (p - sideC));
+			return area;
+		} else {
+			System.out.println("����һ��������,���ܼ������");
+			return 0;
+		}
+	}
+
+	public void setABC(double a, double b, double c) {
+		sideA = a;
+		sideB = b;
+		sideC = c; // ����a,b,c�ֱ�ֵ��sideA,sideB,sideC
+		if (a + b > c && a + c > b && c + b > a) // a,b,c���������ε���������ʽ
+		{
+			boo = true; // ��boo��ֵ��
+		} else {
+			boo = false; // ��boo��ֵ��
+		}
+	}
+}
+
+class Lader {
+	double above, bottom, height, area;
+
+	Lader(double a, double b, double h) {
+		above = a;
+		bottom = b;
+		height = h;
+		// �����壬������a,b,c�ֱ�ֵ��above,bottom,height
+	}
+
+	double getArea() {
+		area = (above + bottom) / 2 * height;
+		return area;
+		// �����壬,Ҫ������area����
+	}
+}
+
+class Circle {
+	double radius, area;
+
+	Circle(double r) {
+		radius = r; // ������
+	}
+
+	double getArea() {
+		return 3.14 * radius * radius; // �����壬Ҫ������area����
+	}
+
+	double getLength() {
+		return 3.14 * 2 * radius; // getArea������Ĵ���,Ҫ������length����
+	}
+
+	void setRadius(double newRadius) {
+		radius = newRadius;
+	}
+
+	double getRadius() {
+		return radius;
+	}
+}
+
+public class AreaAndLength {
+	public static void main(String args[]) {
+		double length, area;
+		Circle circle = null;
+		Trangle trangle;
+		Lader lader;
+		circle = new Circle(10); // ��������circle
+		trangle = new Trangle(3, 4, 5);// ��������trangle��
+		lader = new Lader(3, 4, 10); // ��������lader
+		length = circle.getLength(); // circle���÷��������ܳ�����ֵ��length
+		System.out.println("Բ���ܳ�:" + length);
+		area = circle.getArea();// circle���÷��������������ֵ��area
+		System.out.println("Բ�����:" + area);
+		length = trangle.getLength(); // trangle���÷��������ܳ�����ֵ��length
+		System.out.println("�����ε��ܳ�:" + length);
+		area = trangle.getArea(); // trangle���÷��������������ֵ��area
+		System.out.println("��������:" + area);
+		area = lader.getArea(); // lader���÷��������������ֵ��area
+		System.out.println("������:" + area);
+		trangle.setABC(12, 34, 1); // trangle���÷������������ߣ�Ҫ���������޸�Ϊ12,34,1��
+		area = trangle.getArea(); // trangle���÷��������������ֵ��area
+		System.out.println("��������:" + area);
+		length = trangle.getLength(); // trangle���÷��������ܳ�����ֵ��length
+		System.out.println("�����ε��ܳ�:" + length);
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0302/Example.java b/works/life/java-practice/javatest/src/javatest/p0302/Example.java
new file mode 100644
index 0000000..600a899
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0302/Example.java
@@ -0,0 +1,47 @@
+package javatest.p0302;
+
+class A {
+	float a; // ����һ��float��ʵ������a
+	static float b; // ����һ��float�������b,��static����b
+
+	void setA(float a) {
+		this.a = a; // ������a��ֵ��ֵ����Ա����a
+	}
+
+	void setB(float b) {
+		this.b = b; // ������b��ֵ��ֵ����Ա����b
+	}
+
+	float getA() {
+		return a;
+	}
+
+	float getB() {
+		return b;
+	}
+
+	void inputA() {
+		System.out.println(a);
+	}
+
+	static void inputB() {
+		System.out.println(b);
+	}
+}
+
+public class Example {
+	public static void main(String args[]) {
+		A.b = 100; // ͨ���������������b,����ֵ100
+		A.inputB(); // ͨ���������÷���inputB()
+		A cat = new A();
+		A dog = new A();
+		cat.setA(200); // cat����÷���setA(int a)��cat�ij�Աa��ֵ����Ϊ200
+		cat.setB(400); // cat���÷���setB(int b)��cat�ij�Աb��ֵ����Ϊ400
+		dog.setA(150); // dog����÷���setA(int a)��dog�ij�Աa��ֵ����Ϊ150
+		dog.setB(300); // dog���÷���setB(int b)��dog�ij�Աb��ֵ����Ϊ300
+		cat.inputA(); // cat����inputA()��
+		cat.inputB(); // cat����inputB()��
+		dog.inputA(); // dog����inputA()��
+		dog.inputB(); // dog����inputB()��
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0303/SunRise.java b/works/life/java-practice/javatest/src/javatest/p0303/SunRise.java
new file mode 100644
index 0000000..dbd964c
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0303/SunRise.java
@@ -0,0 +1,12 @@
+package javatest.p0303;
+
+import javatest.p0303.sub.*;
+
+class SunRise {
+	public static void main(String args[]) {
+		SquareEquation equation = new SquareEquation(4, 5, 1);
+		equation.getRoots();
+		equation.setCoefficient(-3, 4, 5);
+		equation.getRoots();
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0303/sub/SquareEquation.java b/works/life/java-practice/javatest/src/javatest/p0303/sub/SquareEquation.java
new file mode 100644
index 0000000..0d7546c
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0303/sub/SquareEquation.java
@@ -0,0 +1,46 @@
+package javatest.p0303.sub;
+
+public class SquareEquation {
+	double a, b, c;
+	double root1, root2;
+	boolean boo;
+
+	public SquareEquation(double a, double b, double c) {
+		this.a = a;
+		this.b = b;
+		this.c = c;
+		if (a != 0) {
+			boo = true;
+		} else {
+			boo = false;
+		}
+	}
+
+	public void getRoots() {
+		if (boo) {
+			System.out.println("��һԪ2�η���");
+			double disk = b * b - 4 * a * c;
+			if (disk >= 0) {
+				root1 = (-b + Math.sqrt(disk)) / (2 * a);
+				root2 = (-b - Math.sqrt(disk)) / (2 * a);
+				System.out.printf("���̵ĸ�:%f,%f\n", root1, root2);
+			} else {
+				System.out.printf("����û��ʵ��\n");
+			}
+
+		} else {
+			System.out.println("����һԪ2�η���");
+		}
+	}
+
+	public void setCoefficient(double a, double b, double c) {
+		this.a = a;
+		this.b = b;
+		this.c = c;
+		if (a != 0) {
+			boo = true;
+		} else {
+			boo = false;
+		}
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0401/Example.java b/works/life/java-practice/javatest/src/javatest/p0401/Example.java
new file mode 100644
index 0000000..d673821
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0401/Example.java
@@ -0,0 +1,113 @@
+package javatest.p0401;
+
+class People {
+	protected double weight, height;
+
+	public void speakHello() {
+		System.out.println("yayawawa");
+	}
+
+	public void averageHeight() {
+		height = 173;
+		System.out.println("average height:" + height);
+	}
+
+	public void averageWeight() {
+		weight = 70;
+		System.out.println("average weight:" + weight);
+	}
+}
+
+class ChinaPeople extends People {
+	public void speakHello() {
+		System.out.println("���,�Է�����?");
+	}
+
+	// ��дpublic void speakHello()������Ҫ��������ơ���ã�������������
+	// ������Ϣ
+	public void averageHeight() {
+		height = 173;
+		System.out.println("�й��˵�ƽ�����ߣ�" + height + "����");
+	}
+
+	// ��дpublic void averageHeight()������Ҫ���������
+	// ���й��˵�ƽ�����ߣ�168.78���ס������ĺ�����Ϣ
+	public void averageWeight() {
+		weight = 67.34;
+		System.out.println("�й��˵�ƽ�����أ�" + weight + "����");
+	}
+
+	// ��дpublic void averageWeight()������
+	// Ҫ��������ơ��й��˵�ƽ�����أ�65��������ĺ�����Ϣ
+	public void chinaGongfu() {
+		System.out.println("������,վ����,˯�繭");// ����й���������Ϣ�����磺"������,վ����,˯�繭"��
+	}
+}
+
+class AmericanPeople extends People {
+	public void speakHello() {
+		System.out.println("How do You do");
+	}
+
+	// ��дpublic void speakHello()������Ҫ���������
+	// ��How do you do��������Ӣ����Ϣ��
+	public void averageHeight() {
+		height = 188;
+		System.out.println("Amerian Average height:" + height + " cm");
+	}
+
+	// ��дpublic void averageHeight()����
+	public void averageWeight() {
+		weight = 80.23;
+		System.out.println("Amerian Average weight:" + weight + " kg");
+	}
+
+	// ��дpublic void averageWeight()����
+	public void americanBoxing() {
+		System.out.println("ֱȭ����ȭ");// ���ȭ������Ϣ�����磬��ֱȭ��������ȭ����
+	}
+}
+
+class BeijingPeople extends ChinaPeople {
+	public void speakHello() {
+		System.out.println("����");
+	}
+
+	// ��дpublic void speakHello()������Ҫ��������ơ����á������ĺ�����Ϣ
+	public void averageHeight() {
+		height = 16;
+		System.out.println("�����˵�ƽ�����ߣ�" + height + "����");
+	}
+
+	// ��дpublic void averageHeight()����
+	public void averageWeight() {
+		weight = 6;
+		System.out.println("�����˵�ƽ�����أ�" + weight + "����");
+	}
+
+	// ��дpublic void averageWeight()����
+	public void beijingOpera() {
+		System.out.println("��������");// ����������Ϣ
+	}
+}
+
+public class Example {
+	public static void main(String args[]) {
+		ChinaPeople chinaPeople = new ChinaPeople();
+		AmericanPeople americanPeople = new AmericanPeople();
+		BeijingPeople beijingPeople = new BeijingPeople();
+		chinaPeople.speakHello();
+		americanPeople.speakHello();
+		beijingPeople.speakHello();
+		chinaPeople.averageHeight();
+		americanPeople.averageHeight();
+		beijingPeople.averageHeight();
+		chinaPeople.averageWeight();
+		americanPeople.averageWeight();
+		beijingPeople.averageWeight();
+		chinaPeople.chinaGongfu();
+		americanPeople.americanBoxing();
+		beijingPeople.beijingOpera();
+		beijingPeople.chinaGongfu();
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0402/Subroutine.java b/works/life/java-practice/javatest/src/javatest/p0402/Subroutine.java
new file mode 100644
index 0000000..6b11ace
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0402/Subroutine.java
@@ -0,0 +1,23 @@
+package javatest.p0402;
+
+class Parent { // ����
+	Parent() {
+		System.out.println("���ø����parent()���췽��");
+	}
+}
+
+class SubParent extends Parent { // �̳�Parent��
+	SubParent() {
+		System.out.println("���������SubParent()���췽��");
+	}
+}
+
+public class Subroutine extends SubParent { // �̳�SubParent��
+	Subroutine() {
+		System.out.println("���������Subroutine()���췽��");
+	}
+
+	public static void main(String[] args) {
+		Subroutine s = new Subroutine(); // ʵ�����������
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0403/Parallelogram.java b/works/life/java-practice/javatest/src/javatest/p0403/Parallelogram.java
new file mode 100644
index 0000000..329aa80
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0403/Parallelogram.java
@@ -0,0 +1,31 @@
+package javatest.p0403;
+
+class Quadrangle {
+	public static void draw(Quadrangle q) {
+		// SomeSentence
+	}
+}
+
+class Square extends Quadrangle {
+	// SomeSentence
+}
+
+class Anything {
+	// SomeSentence
+}
+
+public class Parallelogram extends Quadrangle {
+	public static void main(String args[]) {
+		Quadrangle q = new Quadrangle(); // ʵ�����������
+		// �жϸ�������Ƿ�ΪParallelogram�����һ��ʵ��
+		if (q instanceof Parallelogram) {
+			Parallelogram p = (Parallelogram) q; // ����ת�Ͳ���
+		}
+		// �жϸ�������Ƿ�ΪParallelogram�����һ��ʵ��
+		if (q instanceof Square) {
+			Square s = (Square) q; // ��������ת�Ͳ���
+		}
+		// ����q����ΪAnything��Ķ���������������Ǵ����
+		// System.out.println(q instanceof Anything);
+	}
+}
diff --git a/works/life/java-practice/javatest/src/javatest/p0404/Quadrangle.java b/works/life/java-practice/javatest/src/javatest/p0404/Quadrangle.java
new file mode 100644
index 0000000..c6b6630
--- /dev/null
+++ b/works/life/java-practice/javatest/src/javatest/p0404/Quadrangle.java
@@ -0,0 +1,36 @@
+package javatest.p0404;
+
+public class Quadrangle {
+	// ʵ���������ı��ζ�����������
+	private Quadrangle[] qtest = new Quadrangle[6];
+	private int nextIndex = 0;
+	
+	public void draw(Quadrangle q) { // ����draw()����������Ϊ�ı��ζ���
+		if (nextIndex < qtest.length) {
+			qtest[nextIndex] = q;
+			System.out.println(nextIndex);
+			nextIndex++;
+		}
+	}
+	
+	public static void main(String[] args) {
+		// ʵ���������ı��ζ������ڵ���draw()����
+		Quadrangle q = new Quadrangle();
+		q.draw(new Square()); // �����������������draw()����
+		// ��ƽ���ı��ζ���Ϊ��������draw()����
+		q.draw(new Parallelogramgle());
+	}
+}
+
+class Square extends Quadrangle { // ����һ���������࣬�̳��ı�����
+	public Square() {
+		System.out.println("������");
+	}
+}
+
+// ����һ��ƽ���ı����࣬�̳��ı�����
+class Parallelogramgle extends Quadrangle {
+	public Parallelogramgle() {
+		System.out.println("ƽ���ı���");
+	}
+}
-- 
cgit v1.2.3