• Java 基础(四种访问权限修饰符)


    Java 权限修饰符 public、protected、(缺省)、private 置于类的成员定义前,用来限定对象对该类成员的访问权限。

    对于 class 的权限修饰符只可以用 public 和 default(缺省)

    1. public 类可以在任意地方被访问
    2. default 类只可以被同一个包内部的类访问
    修饰符 类内部 同一个包 不同包的子类 同一个工程
    private yes
    (缺省) yes yes
    protected yes yes yes
    public yes yes yes yes

    例子

    Order.java

    package com.klvchen.java2;
    
    public class Order {
    	
    	private int orderPrivate;
    	int orderDefault;
    	protected int orderProtected;
    	public int orderPublic;
    	
    	private void methodPrivate() {
    		orderPrivate = 1;
    		orderDefault = 2;
    		orderProtected = 3;
    		orderPublic = 4;
    	}
    	
    	void methodDefault() {
    		orderPrivate = 1;
    		orderDefault = 2;
    		orderProtected = 3;
    		orderPublic = 4;
    	}
    	
    	protected void methodProtected() {
    		orderPrivate = 1;
    		orderDefault = 2;
    		orderProtected = 3;
    		orderPublic = 4;
    	}
    	
    	public void methodPublic() {
    		orderPrivate = 1;
    		orderDefault = 2;
    		orderProtected = 3;
    		orderPublic = 4;
    	}
    	
    
    }
    

    OrderTest.java

    package com.klvchen.java2;
    
    public class OrderTest {
    	public static void main(String[] args) {
    		Order order = new Order();
    		
    		order.orderDefault = 1;
    		order.orderProtected = 2;
    		order.orderPublic = 3;
    		
    		order.methodDefault();
    		order.methodProtected();
    		order.methodPublic();
    		
    		// 同一个包中的其他类,不可以调用Order类中私有的属性,方法
    //		order.orderPrivate = 4;
    //		order.methodPrivate();
    	}
    
    }
    

    SubOrder.java

    package com.klvchen.java3;
    
    import com.klvchen.java2.Order;
    
    public class SubOrder extends Order {
    	
    	public void method() {
    		orderProtected = 1;
    		orderPublic = 2;
    		
    		methodProtected();
    		methodPublic();
    		
    		// 在不同包的子类中,不能调用Order类中声明为 private 和 缺省权限的属性、方法
    //		orderPrivate = 3;
    //		orderDefault = 4;
    //		methodPrivate();
    //		methodDefault();
    	}
    
    }
    

    OrderTest.java

    package com.klvchen.java3;
    
    import com.klvchen.java2.Order;
    
    public class OrderTest {
    	public static void main(String[] args) {
    		
    		Order order = new Order();
    		order.orderPublic = 1;
    		order.methodPublic();
    		
    		//不同包下的普通类(非子类)要使用Order类, 不可以调用声明为 private, 缺省, protected权限的属性,方法
    //		order.orderPrivate = 2;
    //		order.orderDefault = 3;
    //		order.orderProtected = 4;
    
    //		order.methodPrivate();
    //		order.methodDefault();
    //		order.methodProtected();
    	}
    
    }
    
  • 相关阅读:
    HDU--1212大数取模
    欧拉函数
    自制体重转换器
    常用快捷键
    Markdown基本语法
    python全栈开发day50-jquery之ajax、XmlHttpRquest
    python全栈开发day49-jquery的位置信息、事件流、事件对象,事件委托,事件绑定和解绑
    阳历转阴历算法
    python全栈开发day48-jqurey自定义动画,jQuery属性操作,jQuery的文档操作,jQuery中的ajax
    python全栈开发day47-jqurey
  • 原文地址:https://www.cnblogs.com/klvchen/p/14416318.html
Copyright © 2020-2023  润新知