java方法返回多个值的办法
package atguigu1.day08;
public class MethodTest1 {
public static void main(String[] args) {
A a = new A();
int[] sumAndMinus = a.getSumAndMinus(1, 4);
System.out.println("两个数的和为:" + sumAndMinus[0]);
System.out.println("两个数的差为:" + sumAndMinus[1]);
MyRes sumAndMinus2 = a.getSumAndMinus2(100, 12);
System.out.println("和:" + sumAndMinus2.sum);
System.out.println("差:" + sumAndMinus2.minus);
}
}
class A{
public int[] getSumAndMinus(int a1, int a2){
int arr[] = new int[2];
arr[0] = a1 + a2;
arr[1] = a1 - a2;
return arr;
}
public MyRes getSumAndMinus2(int a1, int a2){
MyRes myRes = new MyRes();
myRes.sum = a1 + a2;
myRes.minus = a1 - a2;
return myRes;
}
}
class MyRes{
int sum;
int minus;
}
杨辉三角
public class YangHui{
public static void main(String[] args) {
int yangHui[][] = new int[5][];
for( int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i+1];
for( int j = 0; j < yangHui[i].length; j++) {
if( j == 0 || j == yangHui[i].length - 1) {
yangHui[i][j] = 1;
} else {
yangHui[i][j] = yangHui[i-1][j] + yangHui[i-1][j-1];
}
}
}
for( int i = 0; i < yangHui.length; i++) {
for( int j = 0; j < yangHui[i].length; j++) {
System.out.print( yangHui[i][j] + "\t");
}
System.out.println();
}
}
}
java用方法实现数组的拷贝
package atguigu1.day08;
public class MethodTest7 {
public static void main(String[] args) {
MyTools myTools = new MyTools();
int arr[] = {
1,2,3,4,5};
int[] arrNew = myTools.copyArray(arr,2);
myTools.printArr(arr);
myTools.printArr(arrNew);
}
}
class MyTools{
public void printArr(int arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
}
public int[] copyArray(int[] arr, int count){
count = count > arr.length ? arr.length : count;
int arrNew[] = new int[count];
for (int i = 0; i < count; i++) {
arrNew[i] = arr[i];
}
return arrNew;
}
}
克隆对象, 地址相同和地址不同
package atguigu1.day08;
public class MethodTest9 {
public static void main(String[] args) {
S s = new S();
Person p = new Person();
p.name = "孙悟空";
p.age = 421;
Person p1 = p ;
System.out.println("p1.anme=" + p1.name + " p1.age=" + p1.age);
}
}
class S{
public Person copyPerson(Person p){
Person person = new Person();
person.name = p.name;
person.age = p.age;
return person;
}
}
class Person{
public String name;
public int age;
}
java instanceof 的使用
package com.atguigu.day12;
public class InstanceOfDemo {
public static void main(String[] args) {
Object obj1 = new Object();
String str1 = new String("Hello");
Taiger taiger = new Taiger();
System.out.println(obj1 instanceof Object);
System.out.println(str1 instanceof Object);
System.out.println(taiger instanceof Object);
System.out.println(taiger instanceof Monster);
System.out.println(obj1 instanceof Taiger);
}
}
class Taiger extends Monster{
}
class Monster{
}
多态案例
package com.atguigu.day12;
public class TestFiledMethod {
public static void main(String[] args) {
Sub2 sub = new Sub2();
System.out.println(sub.count);
sub.display();
Base2 s = sub;
System.out.println(s.count);
s.display();
}
}
class Base2{
int count =10;
public void display(){
System.out.println(this.count);
}
}
class Sub2 extends Base2{
int count = 20;
public void display(){
System.out.println(this.count);
}
}
java 动态绑定机制案例
package com.atguigu.day12;
public class PolyExam03 {
public static void main(String[] args) {
AAA a = new BBB();
System.out.println(a.sum());
System.out.println(a.sum1());
System.out.println("注销后的测试");
System.out.println(a.sum());
System.out.println(a.sum1());
}
}
class AAA {
public int i = 10;
public int sum() {
return getI() + 10;
}
public int sum1() {
return i + 10;
}
public int getI() {
return i;
}
}
class BBB extends AAA {
public int i = 20;
public int getI() {
return i;
}
}
多态数组、冒泡排序、instanceof、向下转型综合案例
package com.atguigu.day12;
public class PolyArr {
public static void main(String[] args) {
Person person[] = new Person[5];
person[0] = new Person("jack", 30);
person[1] = new Student("smith", 26);
person[2] = new Student("tom", 20);
person[3] = new Teacher("joker", 40);
person[4] = new Teacher("king", 39);
for (int i = 0; i < person.length; i++) {
System.out.println(person[i]);
}
Person temp = null;
for (int i = 0; i < person.length - 1; i++) {
for (int j = 0; j < person.length - 1 - i; j++) {
if (person[j].getAge() > person[j + 1].getAge()) {
temp = person[j];
person[j] = person[j + 1];
person[j + 1] = temp;
}
}
}
System.out.println("========================");
for (int i = 0; i < person.length; i++) {
System.out.println(person[i]);
}
System.out.println("######################");
for (int i = 0; i < person.length; i++) {
if(person[i] instanceof Student){
((Student)person[i]).study();
}else if(person[i] instanceof Teacher){
Teacher tea = (Teacher)person[i];
tea.teach();
}else
System.out.println("Person类");
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
class Student extends Person {
public Student(String name, int age) {
super(name, age);
}
public void study() {
System.out.println("学生 " + getName() + " 正在学习....");
}
}
class Teacher extends Person {
public Teacher(String name, int age) {
super(name, age);
}
public void teach() {
System.out.println("老师 " + getName() + " 正在讲课....");
}
}
练习题,题在代码中
package com.atguigu.day12;
public class PolyParameter {
public static void main(String[] args) {
Worker3 worker3 = new Worker3("佩奇", 200, 8);
PolyParameter polyParameter = new PolyParameter();
polyParameter.showEmpAnnal(worker3);
Manager3 manager3 = new Manager3("乔治", 250, 10, 6000);
polyParameter.showEmpAnnal(manager3);
polyParameter.testWork(worker3);
polyParameter.testWork(manager3);
}
public void showEmpAnnal(Employee3 e) {
System.out.println(e.getName() + " 工资" + e.getAnnual());
}
public void testWork(Employee3 e) {
if(e instanceof Worker3) {
((Worker3)e).work();
} else if(e instanceof Manager3) {
((Manager3)e).manage();
} else {
System.out.println("不处理");
}
}
}
class Employee3 {
private String name;
private double monSal;
private int salMon;
public Employee3(String name, double monSal, int salMon) {
super();
this.name = name;
this.monSal = monSal;
this.salMon = salMon;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMonSal() {
return monSal;
}
public void setMonSal(double monSal) {
this.monSal = monSal;
}
public int getSalMon() {
return salMon;
}
public void setSalMon(int salMon) {
this.salMon = salMon;
}
public double getAnnual() {
return monSal * salMon;
}
}
class Worker3 extends Employee3 {
public Worker3(String name, double monSal, int salMon) {
super(name, monSal, salMon);
}
public void work() {
System.out.println(" 工人 " + getName() + " 在工作中..");
}
@Override
public double getAnnual() {
return super.getAnnual();
}
}
class Manager3 extends Employee3 {
private double bonus;
public Manager3(String name, double monSal, int salMon, double bonus) {
super(name, monSal, salMon);
this.bonus = bonus;
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
public void manage() {
System.out.println("经理 " + getName() + " 在管理....");
}
@Override
public double getAnnual() {
System.out.println("经理的方法被调用~");
return super.getAnnual() + bonus;
}
}