zoukankan      html  css  js  c++  java
  • 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();
    	}
    
    }
    
  • 相关阅读:
    Linux C++ 网络编程学习系列(2)——多路IO之select实现
    Linux C++ 网络编程学习系列(1)——端口复用实现
    Linux c++ vim环境搭建系列(5)——vim使用
    Linux c++ vim环境搭建系列(4)——vim插件安装配置使用
    Linux c++ vim环境搭建系列(3)——Ubuntu18.04.4编译安装youcompleteme
    0512String类
    0511Object类和异常
    Leetcode--53. 最大子序和
    哥德巴赫猜想 Java实现
    面向对象案例-学生信息管理系统V1.1
  • 原文地址:https://www.cnblogs.com/klvchen/p/14416318.html
Copyright © 2011-2022 走看看