基础2-对象-代码整理

成员内部类实战

//成员内部类
class exercise{
    public static void main(String[] args) {
         Animal.Heart  at = new Animal().new Heart();//访问成员内部类
         at.move();//方法
    }                                  
}
class Animal{//动物外部类
    int a = 100;
    class Heart{//心脏内部类
        public void move() {//成员内部类方法
            System.out.println("动物的心脏在跳动"+Animal.this.a);//访问外部类
        }
    }
}

接口实战(带橡皮的铅笔)

package com.llhc;
public class QuickSort {
    public static void main(String[] args) {
        PencilEraser p = new PencilEraser();
        p.writer();
        p.wipe();
    }
}
class Pencil{
    public void writer(){
        System.out.println("具备写的功能");
    }
}
interface Eraser{
    public void wipe();
}
class PencilEraser extends Pencil implements Eraser{
    public void wipe(){
        System.out.println("具备擦除功能");
    }
}

接口实战(会赚钱的学生)

package com.llhc;
public class QuickSort {
    public static void main(String[] args) {
        StudentStudyMoney ssm = new StudentStudyMoney("张三");
        ssm.studentStudy();
        ssm.studentMoney();
    }
}
class Study{
    String name;
    public Study(String name){
        this.name=name;
    }
    public void studentStudy(){
        System.out.println(name+"学习很好!!!");
    }
}
interface Money{
    public void studentMoney();
}
class StudentStudyMoney extends Study implements Money{

    public StudentStudyMoney(String name) {
        super(name);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void studentMoney() {
        System.out.println(name+"也很会赚钱");
    }
}

封装实战(封装公共属性)

class Exercise{
    public static void main(String[] args){
        Net n = new Net();
        n.setId(100);//调用set属性名
        System.out.println("ID"+n.getId());//调用get属性名
        n.user();
    }
}
class Net{//某网
    int tel;//电话
    String name;//名字
    private int id;//用private封装id
    //set属性名
    public void setId(int ids){
        if(ids>=18){//id不可以大于18
            id=18;
        }else{
            id=ids;
        }
    }
    //get属性名
    public int getId(){//获取id
        return id;
    }
    public void user(){
        System.out.println("封装");
    }
}

封装实战(计算器)

/*计算器
具备两个操作数,一个操作符,具备计算功能。
操作数和操作符要封装
*/
class Exercise{
    public static void main(String[] args){
        Calculator c = new Calculator();//调用类
        c.setCalculator(45,2,'*');//调用set+类方法
        c.Arithmetic();//调用运算方法
    }
}
class Calculator{//计算器
    private int num1;//操作数1
    private int num2;//操作数2
    private char operator;//操作符 
    //如果要同时封装多个属性,调用“set+类名”的方法。
    public void setCalculator(int num1,int num2,char operator){//多属性同时封装
        this.num1=num1;//初始化
        this.num2=num2;//初始化
        this.operator=operator;//初始化
        if(operator=='+'||operator=='-'||operator=='*'||operator=='/'){//如果是这4个符号
            this.operator=operator;//就返回给成员属性
        }else{
            this.operator='+';//否则就把‘+’返回
        }   
    }
    public void Arithmetic(){//运算方法
        if(operator=='+'){
            System.out.println("结果:"+(num1+num2));
        }else if(operator=='-'){
            System.out.println("结果:"+(num1-num2));
        }else if(operator=='*'){
            System.out.println("结果:"+(num1*num2));
        }else if(operator=='/'){
            System.out.println("结果:"+(num1/num2));
        }
    }
}

接口多态

class exercise{
    public static void main(String[] args) {
        Study s = new Student();//接口多态:接口    变量名 = new 接口实现类
        s.read();
        s.made();
    }
}
interface Study{//接口
    public void read();
    public void made();
}
class Student implements Study{//实现接口
    public void read() {
        System.out.println("阅读");
    }
    public void made() {
        System.out.println("玩耍");
    }
}

局部内部类

//局部内部类
class exercise{
    public static void main(String[] args) {
        Outer o = new Outer();//调用外部类
        o.run();//调用方法
    }
}
class Outer{
    public void run() {
        final int i = 100;//用final修饰
        class Inner{//内部类
            public void head() {
                System.out.println(i);//访问变量
            }
        }
    Inner innwe = new Inner();//创建内部类对象
    innwe.head();//调用内部类方法
    }
}

匿名内部类

//匿名内部类
class exercise{
    public static void main(String[] args) {
        Outer o = new Outer();
        o.print();
    }
}
abstract class  Animal{//抽象类
    public abstract void run();
}
class Outer{//外部类
    public void print() {//成员方法
        new Animal() {//匿名内部类
            public void run() {//实现抽象方法
                System.out.println("实现抽象方法");
            }
        }.run();
    }
}

重写(学生培训)

/*
 需求:使用java描述一下普通的学生、java基础班的学生、就业班的学生
 学生都会学习,学的内容不一样。
 普通的学生:马克思主义
 基础班的学生:javase
 就业班的学生:javaee+android
 */
class exercise{
    public static void main(String[] args){
        new Student();
        commonStudent c = new commonStudent();
        c.content();
        basicsStudent b = new basicsStudent();
        b.content();
        employmentStudent e = new employmentStudent();
        e.content();
    }
}
class Student{//学生
    public Student() {//构造函数
        System.out.println("学生会学习");
    }
    public void content() {//方法
        System.out.println();
    }
}
class commonStudent extends Student{//普通学生
    public void content() {//重写方法
        System.out.println("学习马克思主义");
    }
}
class basicsStudent extends Student{//基础班学生
    public void content() {//重写方法
        System.out.println("javase");
    }
}
class employmentStudent extends Student{//就业班学生
    public void content() {//重写方法
        System.out.println("javaee+android");
    }
}

强制多态

class exercise{
    public static void main(String[] args) {
        Animal a = new Mouse("老鼠");//多态
        a.run();
        Animal f = new Fish("鱼");//多态
        Fish y = (Fish)f;//强制类型转换
        f.run();//调用方法
        y.dig();//调用子类特有方法
        print(f);//参数为f是鱼类,为a是老鼠,为y是调用子类特有方法
    }
    //题目:定义一个函数可以接收任意的动物对象(利用多态)
    public static void print(Animal f) {//Animal f = new Fish("鱼");
        Fish y = (Fish)f;//强制类型转换
        f.run();//调用方法
    }
}
abstract class Animal{//父类 动物
    String name;
    public Animal(String name){
        this.name=name;
    }
    public abstract void run();//跑的抽象类
}
class Mouse extends Animal{//子类老鼠
    public Mouse(String name){
        super(name);
    }
    public void run() {
        System.out.println(name+"四条腿跑");//实现父类
    } 
}
class Fish extends Animal{//子类鱼
    public Fish(String name) {
        super(name);
    }
    public void run() {
        System.out.println(name+"慢慢的游");//实现父类
    }
    public void dig() {//子类特有方法
        System.out.println("我是子类特有方法");
    }
}

抽象类(图形)

class  exercise
{
    public static void main(String[] args) 
    {
        Roundness r = new Roundness(3,"圆形的");
        r.area();
        r.perimeter();
        Orthogon o = new Orthogon(2,3,"矩形的");
        o.area();
        o.perimeter();
    }
}
abstract class Graph//图形
{
    String name;
    public  Graph(String name){
        this.name=name;
    }
    public abstract void perimeter();
    public abstract void area();
}
class Roundness extends Graph//圆形
{
    public static final double PI = 3.14;
    int r;
    public Roundness(int r,String name){
        super(name);
        this.r=r;
        
    }
    public  void area(){//面积
        System.out.println(name+"面积:"+(PI*r*r));
    }
    public  void perimeter(){
        System.out.println(name+"周长:"+(2*PI*r));
    }
}
class Orthogon  extends Graph//矩形
{
    int length;
    int width;
    public Orthogon(int length,int width,String name){
        super(name);
        this.length=length;
        this.width=width;
        
    }
    public void area(){
        System.out.println(name+"面积"+(length*width));
    }
    public void perimeter(){
        System.out.println(name+"周长"+(2*(length+width)));
    }
}

面向对象

class Exercise{
    public static void main(String[] args){
        Car c = new Car();//调用车对象
        c.wheel=0;//具体轮子
        c.name="宝马";//具体名字
        c.color="白色";//具体颜色
        System.out.println("name"+c.name+"wheel"+c.wheel+"color"+c.color);
        c.run();
        CarRepair r = new CarRepair();//调用修车厂对象
        r.repair(c);//调用修车
        c.run();//跑
    }
}
class Car{//车是抽象的事物
    int wheel;//用整形描述轮子
    String name;//描述名字
    String color;//描述颜色
    public void run(){//用方法描述公共行为
        if(wheel==4){
            System.out.println("车子跑");
        }else{
            System.out.println("马上送到修车厂");
        }
    } 
}
//修车厂
class CarRepair{
    String name;
    public void repair(Car c){//修理车
        if(c.wheel==4){
            System.out.println("修理完毕");
        }else{
            System.out.println("补好轮胎");
            c.wheel=4;//补轮胎
        }
    }       
}

你可能感兴趣的:(基础2-对象-代码整理)