package和访问控制符

一、package

(一)包的明明规则

1.包名全部由小写字母(多个单词也全部小写);
2.如果包名包含多个层次,每个层次应该用“.”分割;
3.包名一般由倒置的域名开头,比如com.baidu;——不要有www
4.自定义包不能java开头

(二)包的两种导入方法

1.在每个类名之前添加完整的包名

java.util.Date today = new java.util.Date(); //类名之前添加完整的包名

2.通过import关键进行引包

import java.util.Date;
import java.util.*;可以导入所有的包
//(注意)对于两个包中类出现同名现象时,并且两个类都需要使用时。则需要在类前加入完整包名

3.补充

在这里插入图片描述

二、访问控制符

在这里插入图片描述

(一)protected

  1. protected(protected修饰的方法或属性最大可以被不同包的子类操控)

  2. 如果protected修饰的属性和方法均为非静态的,则只能在子类中通过子类实例化对象调用其继承过来的属性和方法,而不能使用父类实例化的对象去调用

public class Son extends Father{
	public static void main(String[] args) {
		Father two = new Father();
		Son one = new Son();
		one.printf(); //只能通过子类对象来调用父类(不同包)的方法
		//two.printf();//不可以调用,报错The method printf() from the type Father is not visible
	}
}
//父类非静态的方法
public class Father {
	protected void printf() {
		System.out.println("我的名字");
	}
}

注意:protected修饰的方法或属性,只能在子类中通过实例化子类对象来调用。
在这里插入图片描述
3. 如果protected修饰的属性和方法均为静态,可以通过父类类名或者子类类名来直接调用

public class Son extends Father{
	public static void main(String[] args) {
		Father.printf(); //父类类名调用
		Son.printf(); //子类类名调用
	}
}
//父类的静态方法
public class Father {
	protected static void printf() {
		System.out.println("我的名字");
	}
}

(二)默认的(只能在本包中被调用)

public class Son extends Father{
	public static void main(String[] args) {
		Father two = new Father();
		Son one = new Son();
		//one.printf();父类对象和子类对象都不能调用The method printf() from the type Father is not visible
		//two.printf(); 
	}
}
//父类默认的方法
public class Father {
	void printf() {
		System.out.println("我的名字");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值