Java入門筆記(六)——訪問許可權修飾符

飲閒發表於2020-09-24

一、訪問許可權修飾符

1.修飾屬性和方法

類內部包內部子類包外部
預設
public
private
protected

2.修飾類

類內部包內部子類包外部
預設
public
private
protected

零碎的一些知識點

  1. 被private、protected修飾的類一定是內部類
  2. 內部類只能被定義所在的類內部訪問
  3. 內部類不能作為超類
  4. 無任何修飾的類叫做友好類
  5. 在另一個類中使用友好類建立物件時,需要確保他們在同一個包內部

練習

在這裡插入圖片描述

PA

package PackageA;

public class PA {
	protected int id;
	protected String name;
	String sex;
	
	private class PA1
	{
		public void print()
		{
			System.out.println("在PA類內部定義的私有類PA1,僅供PA訪問");
		}
	}
	
	protected class PA2
	{
		public void print()
		{
			System.out.println("在PA類內部定義的保護類PA2,僅供PA訪問");
		}
	}
	
	public PA(int i,String s)
	{
		id=i;
		name=s;
	}
	
	protected int getId()
	{
		return id;
	}
	
	String getSex()
	{
		return sex;
	}
	
	public String getName()
	{
		return name;
	}
	
	public void print()
	{
		System.out.println("id:"+id);
		System.out.println("Name:"+name);
		System.out.println("Sex:"+sex);
	}
	
	public void print1()
	{
		PA1 pa1=new PA1();
		pa1.print();
		PA2 pa2=new PA2();
		pa2.print();
	}
}

PB

package PackageA;

public class PB {
	public static void main(String[] args)
	{
		PA a=new PA(1,"張三");
		a.print();
		a.id=2;
		a.name="李四";
		System.out.println("id:"+a.getId());
		System.out.println("name:"+a.getName());
	}
}

執行結果

在這裡插入圖片描述

Test

package PackageB;

import PackageA.*;

public class TestProtected {
	public static void main(String[] args)
	{
		PA a=new PA(1,"張三");
		a.print();
		//a.id=2;
		//a.name="heih";
		//System.out.println("id="+a.getId());
		System.out.println("Name:"+a.getName());
	}
}

執行結果

在這裡插入圖片描述

相關文章