java-修饰符

1.访问修饰符

限定词同一个类中同一个包中不同包中的子类不同包中的非子类
private
无限定词
protected
public

(1)private
只能被所属类访问,类、接口不能声明为这种类型,外部只能通过类中的公共方法访问。隐藏类的实现细节和保护数据。

package create;

public class PrivateTest {
	private String name;   //私有的成员变量

	//私有成员变量的get/set方法
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}	
	public static void main(String[] args){
		//创建类的对象
		PrivateTest p = new PrivateTest();
		//调用对象的set方法,为成员变量赋值
		p.setName("private访问修饰符");
		//打印成员变量name的值
		System.out.println("name = " + p.getName());
	}	
}

(2)不使用任何关键字
他们可以被当前包里其他类访问。

package create;

public class DefaultTest {
	String name;   //默认修饰符的成员变量	
	String getName() {  //默认修饰符成员变量的get方法
		return name;
	}
	void setName(String name) {  //默认修饰符成员变量的set方法
		this.name = name;
	}		
	public static void main(String[] args){
		DefaultTest d = new DefaultTest();
		d.setName("default test");
		System.out.println(d.getName());
	}
}

(3)protected
能被包内任何类访问,也可以被不同包中的子类访问。

package create;

public class Person {
	protected String name;
	protected void sing(){
		System.out.println("父类...");
	}
	
	public void test(){
		System.out.println("父类:public test");
	}
	
}
package child;

import create.Person;
public class Women extends Person{
	public static void main(String[] args){
		Women w = new Women();
		w.sing();
		w.name = "protected";
		System.out.println(w.name);
	}
}


(4)public

package create;

public class Person {
	protected String name;
	protected void sing(){
		System.out.println("父类...");
	}
	
	public void test(){
		System.out.println("父类:public test");
	}
	
}
package child;
import create.Person;
public class PublicTest {
	public static void main(String[] args) {
		Person p = new Person();
		p.test();
	}
}


2.非访问修饰符
(1)static修饰符
修饰成员变量和方法,直接通过类名访问。
格式:类名.静态变量名
类名.静态方法名
静态方法不能使用类的非静态变量,静态方法必须被实现,只能访问所属类的静态成员变量和静态成员方法。
静态代码块独立于类成员,位置随便放,加载类是时会被执行,

package create;

public class StaticTest {
	public static final String BANANA = "香蕉";  //static final 修饰的常量
	public static float price = 5.2f;    //final定义的成员变量
	
	static{
		System.out.println("static 静态块");
	}
	
	public static void test(){
		System.out.println(StaticTest.BANANA + "的价格是:" + StaticTest.price);
	}
	
	public static void main(String[] args){
		StaticTest st = new StaticTest();
		st.test();
		System.out.println("main()中,"+st.BANANA+"的price = " + st.price);
	}
}

static 静态块
香蕉的价格是:5.2
main()中,香蕉的price = 5.2
(2)final修饰符
用final修饰的变量是常量,值一旦给定就无法改变。
如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有两个:一是把方法锁定,防止任何继承类修改它的意义和实现。二是高效。
final关键字声明的类不能被继承,即最终类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值