首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

关键字的了解与使用

2012-06-29 
关键字的理解与使用常用关键字????1.访问限定符????????? 可以用来修饰类?? 属性? 方法? 构造方法????????

关键字的理解与使用

常用关键字????1.访问限定符????????? 可以用来修饰类?? 属性? 方法? 构造方法????????????????????????? 工程????? 同一个包????? 同一个类????? 不同包中的子类
?public????????????????√??????????? ? √?????????????? ?√??????????????? √
?protected?????????????????????????? √??????????????? √?????????????? √
? 默认(null)????????????????????????√?????????????? √
?private ?????????????????????????????????????????????? ?√??? ????? 2.this 和 super

????1.?this???????? 指当前类的一个对象
??????? ??????????????在构造方法中调用当前类的另外一个构造方法

??? 2.?super?????? 指当前类的父类的对象
? ??????????????????? 指调用当前类的父类的构造方法

?

?? 3.final? 可修饰? 类 属性 方法 变量

????? final修饰类时则类不可被继承,修饰方法时方法不能再被重写,修饰属性时则属性不再能被修改。

                public final class A{}    private final t;    public final void m(){}

??

?

?

?? 4.static?? 可修饰类?? 属性? 方法?? 代码块

????? 1.修饰属性? static修饰的属性又称为类属性,静态属性数据保存在类空间中,只要加载类,静态属性即被调用,static修饰的数据和方法是作为整个类,而不是类的某个特定对象而存在的。

????? 下面是static属性代码及运行结果示例:

package Keywords博客示例;public class C {//声明非静态属性     String name;        int age;//声明静态属性,通常为共同属性     static String sex = "男";          public void person(String name,int age){     this.name = name;     this.age = age ;     }     public String getinfo(){          return " 姓名:"+ name +" 年龄:"+age +" 性别:"+ sex;     }}

?

?

?

?

package Keywords博客示例;public class D {/** * @param args */public static void main(String[] args) {//新建对象C c1 = new C();C c2 = new C();C c3 = new C();//通过调用C类中的person方法赋予c1,c2,c3等各对象属性c1.person("大师兄",25);c2.person("二师兄",20);c3.person("小师弟",15);//修改sex值前System.out.println(c1.getinfo());System.out.println(c2.getinfo());System.out.println(c3.getinfo());//直接用类名.static属性修改属性//static属性不需要对象来调用,加载类时即运行        C.sex="女";        //修改sex值后        System.out.println(c1.getinfo());            System.out.println(c2.getinfo());            System.out.println(c3.getinfo());}}

?

//只需在如上代码C类中加入一个定义性别的方法 public static void Csex(String s){ sex = s; }这个程序需要注意的是,在static方法中,是不能够使用this关键字的. static修饰的数据和方法是作为整个类,而不是类的某个特定对象而存在的。而this代表的是某个正在使用的当前对象.??//并在D类中调用//直接用类名.static方法来调用方法 C.Csex("女");运行结果相同

?3.代码块代码示例

//将新建对象行改为注释即没有对象时public class MainTest {public static void main(String args[]){System.out.println("B");                              //MainTest mt = new MainTest();}       {System.out.println("A");}}运行结果:B//有对象时public class MainTest {public static void main(String args[]){System.out.println("B");                              MainTest mt = new MainTest();}       {System.out.println("A");}}运行结果:BA//有对象并给代码块加上staticpublic class MainTest {public static void main(String args[]){System.out.println("B");                              MainTest mt = new MainTest();} static {System.out.println("A");}}运行结果:AB//没有对象但给代码块加上staticpublic class MainTest {public static void main(String args[]){System.out.println("B");                             // MainTest mt = new MainTest();} static {System.out.println("A");}}运行结果:AB代码块需要新建对象将数据存于对象所属内存空间才能调用,但当用static修饰时,由于static修饰数据和方法存于类空间内,加载类时直接调用,先于对象

?

?

4.?static方法与static属性之间的关系,static方法与static方法之间的关系???

????? 这里需要总结一下static方法/非static方法 可否访问 static属性/非static属性的关系:

关键字的了解与使用?

?? static方法只能直接调用static方法,否则只能通过实例化对象(new对象)来访问该方法. 这里最典型的例子是main方法的调用. 我们知道,main方法是static方法, 在main方法中要调用非static方法的话,必须要先实例化一个该方法所在类的对象,通过该实例化对象去调用方法. 如果该方法是static方法,main函数即可直接用类名调用,不需再实例化类对象了~

热点排行