努力学习打卡Day17

本文详细讲解了Java编程中的类调用、权限修饰符(private、default、protected、public)的使用,final关键字在类、方法和变量中的应用,以及常量的定义与枚举类型。通过实例展示了如何在不同场景下正确使用这些概念,有助于提升Java编程能力。
摘要由CSDN通过智能技术生成

包:

package d1_package;
import d1_package.a.Student;
public class Test {
    public static void main(String[] args) {
        //1:相同包下的类调用不需要导包
        System.out.println(User.onlineNumber);
        //2:不同包下的类调用需要导包
        Student s = new Student();
        //3:如果这个类中使用不同包下的相同类名的类,此时默认只能导入一个类的包,另一个类用包的全名访问
        d1_package.b.Student s1 = new d1_package.b.Student();
    }
}

权限修饰符:

package d2_modifier;

public class Fu {
    //1:private修饰的方法:只能在本类中访问
    private void privateMethod(){
        System.out.println("---private---");
    }

    //2:缺省修饰的方法:只能在本类以及相同包的其他类中访问
    void Method(){
        System.out.println("---缺省---");
    }

    //3:protected修饰的方法:本类,相同包的其他类以及不同包的子类中访问
    protected void protectedMethod(){
        System.out.println("---protected---");
    }

    //4:public修饰的方法:本类,相同包的其他类,不同包的子类中以及不同包的无关类中访问
    public void publictedMethod(){
        System.out.println("---public---");
    }

    public static void main(String[] args) {
        Fu f = new Fu();
        f.privateMethod();
        f.Method();
        f.protectedMethod();
        f.publictedMethod();
    }
}

 final关键字:

package d3_final;
//final关键字的作用
public class Test {
    public static void main(String[] args) {
        //1:修饰类:表示这个类不可以被继承
        //2:修饰方法:表示这个方法不可以被重写
    }
}

//--------1-----------
final class Animal{
}

//class Dog extends Animal{}报错,final修饰的类不可以被继承

//--------2-----------
class People{
    public final void eat(){
        System.out.println("奥里给干了!");
    }
}

class Yoe extends People{
    //@Override
    //public void eat() {
      //super.eat();
    //}eat方法被final修饰所以不能重写
}
package d3_final;

public class Test2 {
    public static void main(String[] args) {
        //3:final修饰变量:该变量只能被赋值一次
        /**
         * 变量:
         * 成员变量
         * 局部变量
         */
        Test2 t = new Test2();
        System.out.println(Test2.schoolName);
        //t.name = "yoes";第二次赋值了所以报错
        System.out.println(t.name);
        //局部成员变量
        final String name = "yoe";
        //name = "yoes";第二次赋值所以报错
    }
    //静态成员变量(private static final修饰的为常量)
    private static final String schoolName = "yoe";

    //实例成员变量(几乎不用)
    private final String name = "yoe";
}
package d3_final;

public class Test3 {
    public static void main(String[] args) {
        //fina修饰引用类型的变量,其地址值不能改变,但是指向的对象内容可以改变
        final Teacher t1 = new Teacher("yoe");
        System.out.println(t1.getName());
        //t1 = null;地址值不能改变所以报错
        t1.setName("yoes");
        System.out.println(t1.getName());
    }

}
 class Teacher{
    public Teacher(String name) {
        this.name = name;
    }

    private String name;

    public Teacher() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

 常量:

package d4_constant;

import javax.swing.*;
import java.awt.event.ActionEvent;

public class ConstantDemo2 {
    public static final int UP = 1;
    public static final int DOWN = 2;
    public static final int LEFT = 3;
    public static final int RIGHT = 4;
    public static void main(String[] args) {
        //窗口对象(桌子)
        JFrame win = new JFrame();
        //面板对象(桌布)
        JPanel panel = new JPanel();
        //把桌布放在桌子上
        win.add(panel);
        JButton btn1 = new JButton("上");
        JButton btn2 = new JButton("下");
        JButton btn3 = new JButton("左");
        JButton btn4 = new JButton("右");
        panel.add(btn1);
        panel.add(btn2);
        panel.add(btn3);
        panel.add(btn4);
        win.setLocationRelativeTo(null);
        win.setSize(300,400);
        win.setVisible(true);
        btn1.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(UP);
            }
        });
        btn2.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(DOWN);
            }
        });
        btn3.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(LEFT);
            }
        });
        btn4.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(RIGHT);
            }
        });
    }
    public static void move(int flag){
        //控制玛丽移动
        switch (flag){
            case UP:
                System.out.println("玛丽往上走");
                break;
            case DOWN:
                System.out.println("玛丽往下走");
                break;
            case LEFT:
                System.out.println("玛丽往左走");
                break;
            case RIGHT:
                System.out.println("玛丽往右走");
                break;
        }
    }
}

 enum枚举类:

package d5_enum;
//做信息标志和分类
public enum Orientation {
    UP, DOWN, LEFT, RIGHT;
}
package d5_enum;

import javax.swing.*;
import java.awt.event.ActionEvent;

public class EnumDemo2{
    public static void main(String[] args) {
        //窗口对象(桌子)
        JFrame win = new JFrame();
        //面板对象(桌布)
        JPanel panel = new JPanel();
        //把桌布放在桌子上
        win.add(panel);
        JButton btn1 = new JButton("上");
        JButton btn2 = new JButton("下");
        JButton btn3 = new JButton("左");
        JButton btn4 = new JButton("右");
        panel.add(btn1);
        panel.add(btn2);
        panel.add(btn3);
        panel.add(btn4);
        win.setLocationRelativeTo(null);
        win.setSize(300,400);
        win.setVisible(true);
        btn1.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(Orientation.UP);
            }
        });
        btn2.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(Orientation.DOWN);
            }
        });
        btn3.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(Orientation.LEFT);
            }
        });
        btn4.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                move(Orientation.RIGHT);
            }
        });
    }
    public static void move(Orientation o){
        //控制玛丽移动
        switch (o){
            case UP:
                System.out.println("玛丽往上走");
                break;
            case DOWN:
                System.out.println("玛丽往下走");
                break;
            case LEFT:
                System.out.println("玛丽往左走");
                break;
            case RIGHT:
                System.out.println("玛丽往右走");
                break;
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值