java learning Day11-package and access modifiers

Package

Package -> folder

The role of the package:

  1. Avoid duplicate class names, package name (address of class) + class name == full class name (unique address name)

  2. Manage classes according to different functions

    Manage class names according to the number of days: day1, day2

    There are many classes in the project, some are to interact with the database, and some are to interact with the front end

  3. Control access

/*
import 类的地址
在一个类中使用另一个包中的类,需通过import关键字,将类和地址导入
 */
import java.util.Date;
//import java.sql.Date;不能导入相同的类名

//java.lang中的类不需要导入

public class Car {
    
    
    /*
   全包名= 包名 + 类名的简称
    */
    public static void main(String[] args) {
    
    
        Date date = new Date();
        java.sql.Date  date1= new java.sql.Date(1);//如果需要导入相同的类名只能牺牲一个,写出类的全路径
    }
}

Access modifier

public Public permission modifier modifies classes, methods, and attributes

protected protection permission modifier modifies attributes and methods

default The default permission modifier modifies classes, attributes, and methods

private private permission modifier modifies attributes and methods

Insert picture description here

package javaopp.Day03;
public class Demo {
    
    

    public int pub;
    protected int pro;
    int def;
    private int pri;

    /*
        被不同访问权限修饰符修饰的成员变量
     */
    public void pub() {
    
    
    }

    protected void pro() {
    
    
    }

    void def() {
    
    
    }

    private void pri() {
    
    
    }

    /*
         在自己的类中,任何访问权限修饰符,修饰的成员变量都可以被访问
     */
    public static void main(String[] args) {
    
    
        Demo d = new Demo();
        System.out.println(d.pub);
        d.pub();

        System.out.println(d.pro);
        d.pro();

        System.out.println(d.def);
        d.def();

        System.out.println(d.pri);
        d.pri();
    }
}

Different classes in the same package can access public default protected

package javaopp.Day03;
public class Demo1 {
    
    
    /*
        同一个包中的不同类中可以访问public default protected
     */
    public static void main(String[] args) {
    
    
        Demo d = new Demo();
        System.out.println(d.pub);
        d.pub();

        System.out.println(d.def);
        d.def();

        System.out.println(d.pro);
        d.pro();

        /*
        同一包中的不同类中不能访问private
         */
        /*System.out.println(d.pri);
        d.pri();*/
    }
}

Different subclasses of different packages can only access public

package javaopp.Day004;

import javaopp.Day03.Demo;

/*
    不同包的不同子类只能访问public
 */
public class Demo2 {
    
    
    public static void main(String[] args) {
    
    
        Demo d = new Demo();
        System.out.println(d.pub);
        d.pub();

    }
}

Different subclasses of different packages can access the protected members in the parent class

package javaopp.Day004;

import javaopp.Day03.Demo;

/*
    不同包的不同子类中可以访问父类中的受保护的成员
    使用extends继承
 */
public class Demo3 extends Demo {
    
    

    public static void main(String[] args) {
    
    
        Demo3 d3 = new Demo3();
        System.out.println(d3.pub);
        d3.pub();

        System.out.println(d3.pro);
        d3.pro();

    }
}

Guess you like

Origin blog.csdn.net/XiaoFanMi/article/details/110235186