day9~10的代码

多态

public class Text1 { public static void main(String[] args) { women a = new women(); yundong b= new yundong(); getRun(a); getRun(b); } public static void getRun(men c) {//将多态放到形参里 c.run(); } } class men{ public void run() { System.out.println("人会跑"); } } class women extends men{ public void run() { System.out.println("女人跑到慢"); } } class yundong extends men { public void run() { System.out.println("运动员跑到快"); } } 

向上转型,向下转型

public class Text2 { public static void main(String[] args) { Cat cat = new Cat(); cat.eat(); Dogs dog = new Dogs(); dog.eat(); Animals a = new Dogs();//向上转型 a.eat(); getAni(dog); Dogs d = (Dogs)a;//向下转型 d.run(); } public static void getAni(Animals ani) { ani.eat(); } } class Animals{ public void eat() { System.out.println("动物需要吃饭"); } } class Cat extends Animals{ public void eat() { System.out.println("猫吃鱼"); } } class Dogs extends Animals{ public void eat() { System.out.println("狗吃骨头"); } public void run() { System.out.println("狗会跑"); } } 
//创建一个抽象类,定义两个方法 //定义一个子类,继承抽象类,实现两个抽象方法 //使用抽象类的多态,调用两个方法 public class Text4 { public static void main(String[] args) { A a =new B(); a.eat(); a.play(); } } abstract class A { String name; String age; abstract public void eat(); abstract public void play(); } class B extends A { @Override public void eat() { System.out.println("b要吃零食"); } @Override public void play() { // TODO Auto-generated method stub System.out.println("b要玩游戏"); } } 
 //定义一个抽象类形状,包含两个方法,求周长和面积 // //定义一个类长方形,实现抽象类中的方法 // //定义一个类圆,实现抽象类中的方法 // //在测试类中测试 public class Text5 { public static void main(String[] args) { ChangFangXing cfx = new ChangFangXing(); cfx.chang=10; cfx.kuan=5; cfx.zhou(); cfx.mian(); Yuan y = new Yuan(); y.banjing=5; y.mian(); y.zhou(); } } abstract class Xing{ public abstract void zhou(); public abstract void mian(); } class ChangFangXing extends Xing{ int chang; int kuan; @Override public void zhou() { System.out.println("长方形的周长为"+(chang+kuan)*2); } @Override public void mian() { // TODO Auto-generated method stub System.out.println("长方形的面积为"+(chang*kuan)); } } class Yuan extends Xing{ int banjing; public static final double PI=3.14; @Override public void zhou() { System.out.println("圆的周长为"+banjing*PI*2); } @Override public void mian() { // TODO Auto-generated method stub System.out.println("圆的面积为"+banjing*banjing*PI); } } 
//组合类 public class Text6 { public static void main(String[] args) { Amen men =new Amen(); men.setName("张三"); men.setAge("18"); men.setSex("男"); Phone phone =new Phone(); phone.setName("华为"); phone.setModel("P20"); phone.setColor("黑色"); phone.setPrice("1888$"); men.setPhone(phone); System.out.println(men.toString()); } } class Amen{ private String name; private String age; private String sex; private Phone phone; public Amen() { super(); // TODO Auto-generated constructor stub } public Amen(String name, String age, String sex, Phone phone) { super(); this.name = name; this.age = age; this.sex = sex; this.phone = phone; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Phone getPhone() { return phone; } public void setPhone(Phone phone) { this.phone = phone; } @Override public String toString() { return "Amen [name=" + name + ", age=" + age + ", sex=" + sex + ", phone=" + phone + "]"; } } class Phone{ private String name; private String model; private String price; private String color; public Phone() { super(); // TODO Auto-generated constructor stub } public Phone(String name, String model, String price, String color) { super(); this.name = name; this.model = model; this.price = price; this.color = color; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } @Override public String toString() { return "Phone [name=" + name + ", model=" + model + ", price=" + price + ", color=" + color + "]"; } } 
// //? 编写一个抽象类Animal,抽象类中包括属性:name(String类型),抽象方法:speak()。 // //? 编写一个宠物接口pet,接口中包括方法:eat()。 // //? 再编写一个类cat,实现该接口和抽象类中的所有方法。 // //? speat(): “miao, my name is xxx” // //? eat(): “I want to eat some fish” // //? 在main中进行测试,输出: //? 给猫赋值一个名字,调用speak,eat 方法 public class Text7 { public static void main(String[] args) { Catss a = new Catss(); a.name="hua"; a.eat(); a.speak(); } } abstract class Animal { String name; public abstract void speak(); } interface Pet{ public abstract void eat(); } class Catss extends Animal implements Pet { @Override public void eat() { System.out.println("I want to eat some fish"); } @Override public void speak() { System.out.println("miao, my name is "+ name); } } 

局部类

//局部内部类 public class Text1 { public static void main(String[] args) { new Outers().method(); new Outerss().methods(); } } class Outers{ public void method() { //局部内部类 class Inners{ public void show() { System.out.println("我是局部内部类"); } } new Inners().show(); } } class Outerss{ public void methods() { //1.7之前需要用final修饰 int a =10; class Innerss{ public void show() { System.out.println(a); } } new Innerss().show(); } } 

成员内部类

import shangwu.Outer.Inner; //成员内部类 public class Text { public static void main(String[] args) { Inner inner =new Outer().new Inner(); inner.show(); } } class Outer{ private int a =10; static int b=20; class Inner{ int a =30; public void show() { int a=50; System.out.println(a); System.out.println(b); //第一种调用方法 System.out.println(new Inner().a); System.out.println(new Outer().a); //第二种调用 System.out.println(this.a); System.out.println(Outer.this.a); } } } 
//静态内部类 public class Text2 { public static void main(String[] args) { OuterClasss.InnterClass.show(); } } class OuterClasss{ static class InnterClass{ //int b =10; static int a =10; public static void show() { System.out.println(a); //System.out.println(b); } } } 
//匿名内部类 public class Text { public static void main(String[] args) { // Inter inter =new Actual(); // inter.eat(); Inter in = new Inter() { @Override public void eat() { System.out.println("chibaoboa"); } }; in.eat(); //匿名内部类 new Inter() { @Override public void eat() { System.out.println("chiyidan"); } }.eat(); //对比 new Abc() { @Override public void play() { // TODO Auto-generated method stub System.out.println("打游戏"); } }.play(); //原来方法,根据接口多态创建对象 Abc a =new Bcd(); a.play(); //普通类进行匿名内部累使用 new a() { public void happy() { System.out.println("人会开心"); } }.happy(); //父类进行匿名内部累使用 new b() { @Override public void abc() { System.out.println("abc"); } }.abc();; } } // 接口 interface Inter { public abstract void eat(); }  实现方法 // class Actual implements Inter{ // // @Override // public void eat() { // System.out.println("chi"); // // } // // }  想要直接调用方法,因为直接实现方法会平白无故占内存 interface Abc{ public abstract void play(); } class Bcd implements Abc{ @Override public void play() { // TODO Auto-generated method stub System.out.println("打球"); } } //普通类的方法 class a{ public void happy() { System.out.println("都会笑"); } } //父类 abstract class b{ public abstract void abc(); } 

适配器

public class Text1 { public static void main(String[] args) { } } //适配器 interface Persons{ public abstract void name1() ; public abstract void name2() ; public abstract void name3() ; public abstract void name4() ; public abstract void name5() ; public abstract void name6() ; public abstract void name7() ; public abstract void name8() ; public abstract void name9() ; } //创建一个中间类然后让想要有用的继承给最终类 class student extends studentAbc{ public void name1() { System.out.println(""); } public void name3() { System.out.println(""); } } //中间类 class studentAbc implements Persons{ @Override public void name1() { // TODO Auto-generated method stub } @Override public void name2() { // TODO Auto-generated method stub } @Override public void name3() { // TODO Auto-generated method stub } @Override public void name4() { // TODO Auto-generated method stub } @Override public void name5() { // TODO Auto-generated method stub } @Override public void name6() { // TODO Auto-generated method stub } @Override public void name7() { // TODO Auto-generated method stub } @Override public void name8() { // TODO Auto-generated method stub } @Override public void name9() { // TODO Auto-generated method stub } } 
public class Text2 { //private static final Person Person = null; public static void main(String[] args) { // 如何调用PersonDemo中的method方法呢? // Person o =new Person() { // // @Override // public void show() { // // TODO Auto-generated method stub // System.out.println("123"); // } // }; // PersonDemo p = new PersonDemo(); // p.method(o); new PersonDemo().method(new Person(){ @Override public void show() { // TODO Auto-generated method stub System.out.println("123"); } }); } } abstract class Person { public abstract void show(); } class PersonDemo { public void method(Person p) { p.show(); } } 

递归

import java.util.Scanner; //需求: 键盘读入一个整数,求出0到这个整数的和 public class Text4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入整数"); int num =sc.nextInt();; //正常方法 // int sun =0; // for (int i = 0; i <=num; i++) { // sun +=i; // } // System.out.println(sun); //递归 如果数越大,可能会内存溢出 System.out.println(getSun(num));; } private static int getSun(int num) { // TODO Auto-generated method stub if(num==1) { return 1; }else { return num + getSun(num-1); } } } 

兔子问题

/* * 需求: * 一对兔子 * 每三个月每个生一对兔子 * 兔子三个月也开始生自己的兔子 * * 假设不死 * 请问十个月后 我有多少对兔子 * * * 规律 从第三个月开始,每个月兔子的对数 等于前两个月兔子对数之和 */ public class Text5 { public static void main(String[] args) { int a =10; // int b=0; // for (int i = 0; i < args.length; i++) { // b+=getsun(a); // } System.out.println(getsun(a)); } private static int getsun(int a) { if(a==1) { return 1; }else if(a==2){ return 1; }else { return getsun(a-1)+getsun(a-2); } } } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值