成员变量自动被赋予初值,可以在不生成实例的情况下用类名直接引用) c) native:用于修饰类的方法,本地方法是外部模块,用其他编程语言编写方法体 d) synchronized(同步):用于修饰类的方法。适用于“多线程”编程 e) final:用于成员变量则被修饰的类为常量(必须在定义时赋值),或用于修饰方法
则此方法为终止方法(即子类不能重写此方法)。
java访问权限修饰符public protected friendly private用法总结
首先声明:java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly。
为了条理清晰,分三种不同情况来总结。
一 访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了) eg:class A {
protected int weight ; protected int f( int a,int b ) { // 方法体 } }
假设B与A在同一个包中,则 class B { void g() {
A a=new A(); A.weight=100;//合法 A.f(3,4); //合法 } }
特别说明:什么是在同一个包中?
答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)
eg:在JDK的src\\java\\io中,你会看到许多java类,第一句源代码都是package java.io; 没有使用package打包的,在同一目录下的类也会被视做同一个包。
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。 eg: class A {
int weight ; int f( int a,int b ) {
// 方法体 } }
假设B与A在同一个包中,则 class B { void g() {
A a=new A(); A.weight=100;//合法 A.f(3,4); //合法 } }
private: 只能在本类中访问。 eg: class Test {
private int money; Test() {
money=2000; }
private int getMoney() {
return money; }
public static void main(String args[]) {
Test te=new Test(); te.money=3000; //合法 int m=te.getMoney(); //合法 System.out.println(\} }
PS: 实际上,把重要的数据修饰为private,然后写一个public的函数访问它,正好体现了OOP的封装特性,是OOP安全性的体现。 二 访问权限修饰符修饰类
1,不能用protected和private修饰类。
2,用friendly修饰的类叫友好类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中。
三 访问权限修饰符与继承
这里的访问修饰符指的是修饰成员变量和方法。可以分为两种情况: 1,子类与父类在同一包中
此时只有声明为private的变量与方法不能被继承(访问)。 eg:
class Father {
private int money ; int weight=100; }
class Son extends Father { viod f() {
money=10000;// 非法 weight=100; // 合法 } }
2,子类与父类不在同一包中
此时private与friendly均不能被继承(访问),eg: Father.java package com.aaa public class Father {
int height ;
protected int money=120; public int weight; protected int getMoney() {
return money; }
void setMoney(int newMoney) {
money=newMoney; } }
Son.java
package com.bbb import com.aaa.Father; public class Son extends Father { void f() {
money=10000;//合法
与public可以。 protected //height=170;//非法,height为friendly修饰的变量 System.out.println(money);//输出结果是10000 //setMoney(300); //非法 int number=getMoney(); //合法
System.out.println(number);//输出结果是10000 }
public static void main(String args[]) {
Son sss=new Son(); sss.f(); } }
所以,访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。
//*****************以下为编程样题,仅做参考************************** //P62 11题
import java.util.Scanner; class U20_3{
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
System.out.print(\输入5则显示书上的结果 int n=reader.nextInt(); int [][]a=new int[n][n]; int i,j,c=0,p;
for(i=0;i for(j=0;j<=i;j++){ p--; a[p][j]=++c; } } for(i=0;i System.out.print(a[i][j]!=0?a[i][j]+\ } System.out.println(); } } } //********************************************************** //字符串处理,引入Scanner 类完成字符串的交互输入 import java.util.Scanner; class U20_4{ public static void main(String args[]){ Scanner reader=new Scanner(System.in);
相关推荐: