修饰符应用

package com.xyh.test.protect.a1;

public class father {
    int a;
    public int b;//所有类可以访问
    protected int c;//包中的类及其子类可以访问
    private int d;//包中的类可以访问
    protected father(int d){
        this.d = d;
        System.out.println(d);
    }
    father(){ }
    public father(int a,int d){ } 
    int geta(){ return this.a; } 
}
package com.xyh.test.protect.a1;

class Ca {
    int a = new father().a;
    int b = new father().b;
    int c = new father().c;
    int d = new father(1).a;
    int e = new father(1).b;
    int f = new father(1).c;
    int geta(){
        return new father().geta();
    }
}

/* 
* Ca跟father在同一个包中,可以访问father的private以外的
* 所有属性、方法; 
*/ 

/*
* class前的修饰符只能为public或默认(即无修饰符) 
* 变量和方法前的修饰符可以是public protected 默认 private 
*/
package com.xyh.test.protect.a2;
import com.xyh.test.protect.a1.father;

class son1 extends father {
    int b = super.b;
    int c = super.c;
    son1(int i) {
        super(i);
    }
	void show(){
        c = 0;//非静态方法中可以直接访问类的变量
        int f = super.b;
        int g = this.c; 
        //int h = new father(4).b; //提示The constructor father(int) is not visible int h = new father(1,4).b; 
        //father(int a,int d)为public修饰 
    }
    public static void main(){ 
        //	int f = new father(4).b;//提示The constructor father(int) is not visible int f= new father(1,4).b;
        //father(int a,int d)为public修饰 
        //new father(1,4)访问不到c 
        System.out.print(f); 
        //	c = 0; //Cannot make a static reference to the non-static field c 
    }
} 
/*
 * 子类的构造函数中必须要执行父类的构造函数。如果不写super(i);
 * 默认的会执行super(),father中没有定义这个构造函数就会报错。
 */
/*
 * father类被继承,其构造函数的权限至少为protected
 */
/*
 * this和super不能用在static修饰的方法中,在static方法中不能
 * 直接访问类的变量,需要通过类实例访问
 */
/*
 * father中protected修饰的属性,在子类中可以用super.c访问。
 * 通过类的实例不能访问
 */
/*
 * 要访问其他包中的类,其他包中的类前必须是public修饰
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值