面向对象下

例子1

package com.atguigu.java3;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:51
 */
public class StaticTest {
    public static void main(String[] args) {

        Chinese c1 = new Chinese();
        c1.name="马云";
        c1.age=40;

        Chinese c2 = new Chinese();
        c2.name="大飞";
        c2.age=23;

        c1.nation="CHN";

        c2.nation="CHINA";
        System.out.println(c2.nation);

    }
}


class Chinese{

    String name;
    int age;
    static String nation;


}

例子2

package com.atguigu.java3;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:51
 */
public class StaticTest {
    public static void main(String[] args) {

        Chinese c1 = new Chinese();
        c1.name="马云";
        c1.age=40;

        Chinese c2 = new Chinese();
        c2.name="大飞";
        c2.age=23;

        c1.nation="CHN";

        c2.nation="CHINA";
        System.out.println(c2.nation);

    }
}


class Chinese{

    String name;
    int age;
    static String nation;


}

例子3

package com.atguigu.java1;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:11
 */
public class SingletonTest1 {

    public static void main(String[] args) {
        Bank bank1 = Bank.getInstance();
        Bank bank2 = Bank.getInstance();

        System.out.println(bank1 == bank2);
    }

}

class Bank{

    //1.私有化类的构造器
    private Bank(){

    }

    //2.内部创建类的对象
    //4.要求此对象也必须声明为静态的
    private static Bank instance = new Bank();

    //3.提供公共的静态方法,返回类的对象
    public static Bank getInstance(){
        return instance;
    }

}

例子4

package com.atguigu.java1;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:36
 */
public class SingletonTest2 {

    public static void main(String[] args) {

        Order order1 = Order.getInstance();
        Order order2 = Order.getInstance();

        System.out.println(order1 == order2);

    }

}


class Order{

    //1.私有化类的构造器
    private Order(){

    }

    //2.声明当前类对象,没有初始化
    //4.此对象也必须声明为static的
    private static Order instance = null;

    //3.声明public,static的返回当前类的对象的方法
    public static Order getInstance(){
        if(instance==null){
            instance = new Order();
        }

        return instance;
    }

}

例子5

package com.atguigu.java1;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:55
 */


public class MainTest {

    public static void main(String[] args) {
        Main.main(new String[100]);
    }

}

class Main{

    public static void main(String[] args) {
        args = new String[100];
        for(int i=0; i<args.length; i++){
            args[i]="args_"+i;
            System.out.println(args[i]);
        }
    }

}

例子6

package com.atguigu.java2;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 16:29
 */
public class BlockTest {
    public static void main(String[] args) {


//        System.out.println(Person.desc);
        Person p1 = new Person();
        Person p2 = new Person();
        System.out.println(p1.age);
    }
}


class Person{

    String name;
    int age;
    static String desc="我是一个人";

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //静态代码块
    static{
        System.out.println("hello,static block-1");
        desc="我是一个爱学习的人";
    }

    static{
        System.out.println("hello,static block-2");
        info();
    }

    //非静态代码块
    {
        age=1;
        System.out.println("hello,block");
        info();
        eat();
    }

    public void eat(){
        System.out.println("吃饭");
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public static void info(){
        System.out.println("我是一个快乐的人");
    }

}

例子7

package com.atguigu.java4;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 17:37
 */
public class AbstractTest {
    public static void main(String[] args) {
        //一旦Person抽象了,就不可以实例化
//        Person p1 = new Person();
//        p1.eat();
    }
}

abstract class Creature{
    public abstract void breath();
}

abstract class Person extends Creature{

    String name;
    int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public abstract void eat();

    public void walk(){
        System.out.println("人走路");
    }

}

 class  Student extends Person{

    public Student(String name, int age) {
        super(name, age);
    }
    @Override
    public void eat() {
        System.out.println("学生应该多吃有营养的食物");
    }

     @Override
     public void breath() {
         System.out.println("学生应该呼吸新鲜的没有雾霾的空气");
     }
 }

例子8

package com.atguigu.java4;

/**
 * 抽象类的匿名子类
 * @author shkstart
 * @create 2021-11-{DAY} 18:17
 */
public class PersonTest {
    public static void main(String[] args) {
        method(new Student());
        Worker worker = new Worker();
        method1(worker);//非匿名的类非匿名的对象

        method1(new Worker());  //非匿名的类匿名的对象

        System.out.println("***********************");

        //创建了一匿名类的对象p
        Person p = new Person(){

            @Override
            public void eat() {
                System.out.println("吃东西");
            }

            @Override
            public void breath() {
                System.out.println("好好呼吸");
            }
        };

        method1(p);

        System.out.println("*********************");

        //创建匿名子类的匿名对象
        method1(new Person() {
            @Override
            public void eat() {
                System.out.println("吃好吃的东西");
            }

            @Override
            public void breath() {
                System.out.println("好好呼吸新鲜空气");
            }
        });

    }

    public static void method1(Person p){
        p.eat();
        p.breath();
    }

    public static void method(Student s){

    }
}

class Worker extends Person{

    @Override
    public void breath() {

    }

    @Override
    public void eat() {

    }
}

例子9

package com.atguigu.java4;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 19:15
 */
public class TemplateTest {

    public static void main(String[] args) {
        SubTemplate t = new SubTemplate();
        t.spendTime();
    }
}

abstract class Template{

    //计算某段代码执行所需要花费的时间
    public void spendTime(){

        long start = System.currentTimeMillis();

        this.code();  //不确定的部分,易边的部分

        long end = System.currentTimeMillis();

        System.out.println("花费的时间为:"+(end-start));


    }

    public abstract void code();


}

class SubTemplate extends Template{

    @Override
    public void code() {

        for(int i=2; i<=1000; i++){
            boolean isFlag=true;
            for(int j=2; j<=Math.sqrt(i); j++){
                if(i%j==0){
                    isFlag=false;
                    break;
                }
            }
            if(isFlag){
                System.out.println(i);
            }
        }

    }
}

例子10

package com.atguigu.java4;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 19:31
 */
public class InterfaceTest {

    public static void main(String[] args) {
        System.out.println(Flyable.MAX_SPEED);
        System.out.println(Flyable.MIN_SPEED);
        Plane plane = new Plane();
        plane.fly();
        plane.stop();
    }

}


interface Flyable{

    //全局常量
    public static final int MAX_SPEED = 7900;
    public static final int MIN_SPEED = 1;

    //抽象方法
    public abstract void fly();

    //省略了public abstract
    void stop();

}

class Plane implements Flyable{

    @Override
    public void fly() {
        System.out.println("通过引擎起飞");
    }

    @Override
    public void stop() {
        System.out.println("驾驶员减速停止");
    }
}

例子11

package com.atguigu.java5;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:21
 */
public class USBTest {

    public static void main(String[] args) {

        Computer com = new Computer();
        Flash flash = new Flash();
        com.transferData(flash);

    }

}

class Computer{

    public void transferData(USB usb){
        usb.start();

        System.out.println("具体传输数据的细节");

        usb.stop();

    }
}


interface USB{

    void start();

    void stop();

}

class Flash implements USB{
    @Override
    public void start() {
        System.out.println("U盘开启工作");
    }

    @Override
    public void stop() {
        System.out.println("u盘结束工作");
    }
}

class Printer implements USB{

    @Override
    public void start() {
        System.out.println("打印机开启工作");
    }

    @Override
    public void stop() {
        System.out.println("打印机结束工作");
    }
}

例子12

package com.atguigu.java5;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 20:21
 */
public class USBTest {

    public static void main(String[] args) {

        Computer com = new Computer();
        //1.创建了接口的非匿名实现类的非匿名对象
        Flash flash = new Flash();
        com.transferData(flash);

        //2.创建了接口的非匿名实现类的匿名对象
        com.transferData(new Printer());

        //3.创建了接口的匿名实现的非匿名对象
        USB phone = new USB(){

            public void start(){
                System.out.println("手机开始工作");
            }

            public void stop(){
                System.out.println("手机结束工作");
            }
        };
        com.transferData(phone);

        //4.创建了接口的匿名实现类的匿名对象
        com.transferData(new USB(){
            public void start(){
                System.out.println("mp3开始工作");
            }

            public void stop(){
                System.out.println("mp3结束工作");
            }
        });


    }

}

class Computer{

    public void transferData(USB usb){
        usb.start();

        System.out.println("具体传输数据的细节");

        usb.stop();

    }
}


interface USB{

    void start();

    void stop();

}

class Flash implements USB{
    @Override
    public void start() {
        System.out.println("U盘开启工作");
    }

    @Override
    public void stop() {
        System.out.println("u盘结束工作");
    }
}

class Printer implements USB{

    @Override
    public void start() {
        System.out.println("打印机开启工作");
    }

    @Override
    public void stop() {
        System.out.println("打印机结束工作");
    }
}

例子13

CompareA

package com.atguigu.java8;

/**
 *
 * @author shkstart
 * @create 2021-11-{DAY} 21:02
 */
public interface CompareA {

    //静态方法
    public static void method1(){
        System.out.println("CompareA:北京");
    }

    //默认方法
    public default void method2(){
        System.out.println("CompareA:上海");
    }

    default void method3(){
        System.out.println("CompareA:上海");
    }

}

SubClassTest

package com.atguigu.java8;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 21:09
 */
public class SubClassTest {

    public static void main(String[] args) {
        SubClass s = new SubClass();
        //s.method1();
        CompareA.method1();

        s.method2();
        s.method3();

    }

}

class SubClass implements CompareA{
    public  void method2(){
        System.out.println("SubClass:上海");
    }

}


例子14

CompareA

package com.atguigu.java8;

/**
 *
 * @author shkstart
 * @create 2021-11-{DAY} 21:02
 */
public interface CompareA {

    //静态方法
    public static void method1(){
        System.out.println("CompareA:北京");
    }

    //默认方法
    public default void method2(){
        System.out.println("CompareA:上海");
    }

    default void method3(){
        System.out.println("CompareA:上海");
    }

}

SubClassTest

package com.atguigu.java8;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 21:09
 */
public class SubClassTest {

    public static void main(String[] args) {
        SubClass s = new SubClass();
        //s.method1();
        CompareA.method1();

        s.method2();
        s.method3();

    }

}

class SubClass extends SuperClass implements CompareA{
    public  void method2(){
        System.out.println("SubClass:上海");
    }

}

SuperClass

package com.atguigu.java8;

/**
 * @author shkstart
 * @create 2021-11-{DAY} 21:29
 */
public class SuperClass {

    public void method3(){
        System.out.println("SuperClass:北京");
    }
}

例子15

package com.atguigu.java;

/**
 * 类的内部
 * @author shkstart
 * @create 2021-12-{DAY} 17:24
 */
public class InnerClassTest {

    public static void main(String[] args) {

        //创建Dog实例(静态的成员内部类):
        Person.Dog dog = new Person.Dog();
        dog.show();

        //创建Bird实例(非静态的成员内部类):
        Person p = new Person();
        Person.Bird bird = p.new Bird();
        bird.sing();

        System.out.println();

        bird.display("黄鹂");

    }

}


class Person{

    String name="小明";
    int age;

    public void eat(){
        System.out.println("人,吃饭");
    }

    //静态成员内部类
    static class Dog{
        String name;
        int age;

        public void show(){
            System.out.println("卡拉是条狗");
        }
    }

    //非静态成员内部类
    class Bird{
        String name="杜鹃";

        public Bird(){

        }

        public void sing(){
            System.out.println("我是一只小小鸟");
            Person.this.eat();  //调用外部类的非静态方法
            eat();
        }

        public void display(String name){
            System.out.println(name);   //方法的形参
            System.out.println(this.name);  //内部类的属性
            System.out.println(Person.this.name);   //外部类的属性
        }


    }

    public void method(){
        //局部内部类
        class AA{

        }
    }

    {
        class BB{

        }
    }

    public Person(){
        //局部内部类
        class CC{

        }
    }

}

例子16

package com.atguigu.java;

/**
 * @author shkstart
 * @create 2021-12-{DAY} 18:14
 */
public class InnerClassTest1 {

    //返回一个实现了Comparable接口的类的对象
    public Comparable getComparable(){

        //创建一个实现了Comparable接口的类:局部内部类
        //方式一:
//        class MyComparable implements Comparable{
//
//            @Override
//            public int compareTo(Object o) {
//                return 0;
//            }
//        }
//
//        return new MyComparable();
//    }

        //方式2:
        return new Comparable() {
            @Override
            public int compareTo(Object o) {
                return 0;
            }
        };

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值