From 5e5001a462916fda66fda8996e0fe85f73779a76 Mon Sep 17 00:00:00 2001 From: crupest 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 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 @@ + + + + + + + + + + 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 @@ + + + javatest + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + 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 set = new HashSet(); + + 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的成员a的值设置为200 + cat.setB(400); // cat调用方法setB(int b)将cat的成员b的值设置为400 + dog.setA(150); // dog象调用方法setA(int a)将dog的成员a的值设置为150 + dog.setB(300); // dog调用方法setB(int b)将dog的成员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