阶段2:JAVASE进阶

1.static

1.理解static修饰成员变量的作用和访问特点。

package com.itheima.d1_static;

public class User {
    /**
      在线人数。
      注意:static修饰的成员变量:静态成员变量,只在内存中有一份,可以被共享
     */
    public static int onlineNumber = 161;
    /**
       实例成员变量:无static修饰,属于每个对象的,必须用对象名.访问
     */
    private String name;
    private int age;

    public static void main(String[] args) {
        // 目标:理解static修饰成员变量的作用和访问特点。
        // 1、类名.静态成员变量。
        System.out.println(User.onlineNumber);

        // 2、对象名.实例成员变量
        // System.out.println(User.name); // 报错
        User u = new User();
        u.name = "张三";
        u.age = 21;
        System.out.println(u.name);
        System.out.println(u.age);
        u.onlineNumber++; // 新来了一个人
        System.out.println(u.onlineNumber);

        User u2 = new User();
        u2.name = "张三2";
        u2.age = 22;
        System.out.println(u2.name);
        System.out.println(u2.age);
        u2.onlineNumber++; // 新来了一个人

        System.out.println(u.onlineNumber);
        System.out.println(User.onlineNumber); // 推荐方式
        // 注意:同一个类中静态成员变量的访问可以省略类名。
        System.out.println(onlineNumber);

    }

}

2.static修饰成员方法的基本用法

package com.itheima.d1_static;

public class Student {
    /**
       实例成员变量:无static修饰,属于对象。
     */
    private String name;

    /**
       静态成员方法: 有static修饰,归属于类,可以被共享访问,用类名或者对象名都可以访问。
     */
    public static int getMax(int age1, int age2){
        return age1 > age2 ? age1 : age2;
    }

    /**
       实例方法:属于对象的,只能用对象触发访问
     */
    public void study(){
        System.out.println(name + "在好好学习,天天向上~");
    }

    public static void main(String[] args) {
        // 1、类名.静态成员方法
        System.out.println(Student.getMax(10, 3));
        // 注意:同一个类中,访问静态方法,类名可以省略不写。
        System.out.println(getMax(10, 32));

//         study(); // 报错了
        // 2、对象.实例方法
        Student s = new Student();
        s.name = "猪八戒";
        s.study();

        // 3、对象.静态方法 (语法是可行,但是不推荐)
        System.out.println(s.getMax(13,34));
    }
}

2-面向对象进阶

07-接口

InterfaceDemo

package com.itheima.d10_interface;

/**
   声明了一个接口: 体现一种规范,规范一定是公开的。
 */
public interface InterfaceDemo {
    // 目标:接口中的成分特点:JDK 8之前接口中只能有抽象方法和常量。
    // 1、常量:
    // 注意:由于接口体现规范思想,规范默认都是公开的,所以代码层面,public static final 可以省略不写。
     String SHCOOL_NAME = "黑马程序员";
    //public static final String SHCOOL_NAME = "黑马程序员";

    // 2、抽象方法
    // 注意:由于接口体现规范思想,规范默认都是公开的,所以代码层面,public abstract可以省略不写。
    void run();
    // public abstract void run();

    void eat();
    // public abstract void eat();
}

Interface_implements

阶段2:JAVASE进阶_第1张图片
SportMan
package com.itheima.d11_interface_implements;

public interface SportMan {
    void run();
    void competition();
}
PingPongMan
package com.itheima.d11_interface_implements;

public class PingPongMan implements SportMan{
    private String name;

    public PingPongMan(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        System.out.println(name + "必须跑步训练!");
    }

    @Override
    public void competition() {
        System.out.println(name + "要参加比赛,为国争光~!");
    }
}
Test
package com.itheima.d11_interface_implements;

public class Test {
    public static void main(String[] args){
        // 目标:理解接口的基本使用:被类实现。
        PingPongMan p = new PingPongMan("张继科");
        p.run();
        p.competition();

    }
}

你可能感兴趣的:(2.阶段02:JavaSE进阶,java,开发语言)