1.3 J2SE复习(4月23日)

7.4


this关键字使用


1)使用原因:

避免如下的尴尬

public void setName(String name){

name = name;//都成局部变量,error

this.name = name;//第一个name为类的属性,第二个为局部变量

}


2)用法

1.在方法内部使用,即这个方法所属对象的引用;
2.在构造器内部使用,表示该构造器正在初始化的对象


this表示当前对象,可以调用类的属性、方法和构造器


1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员

2.在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this,增强程序的阅读性


class Person{        // 定义Person类
    private String name ;    
    private int age ;            
    public Person(String name,int age){    
        this.name = name ;   
        this.age = age ;  }
    public void getInfo(){    
        System.out.println("姓名:" + name) ;
        this.speak();
    }
    public void speak(){
        System.out.println(“年龄:” + this.age);    
    }
}

3.this可以作为一个类中,构造器相互调用的特殊格式


class Person{        // 定义Person类
    private String name ;        
    private int age ;            
    public Person(){      // 无参构造
        System.out.println("新对象实例化") ;
    }
    public Person(String name){
        this();      // 调用本类中的无参构造方法
        this.name = name ;    
    }
    public Person(String name,int age){    
        this(name) ;  // 要放在首行,显式调用当前类有一个参数的构造方法
        this.age = age;
    }
    public String getInfo(){    
        return "姓名:" + name + ",年龄:" + age ;
    }  }


注意:


1.使用this()必须放在构造器的首行!

2.使用this调用本类中其他的构造器,保证至少有一个构造器是不用this的。


7.5/7.6待补 程序练习


7.7


JavaBean是一种Java语言写成的可重用组件。

所谓javaBean,是指符合如下标准的Java类:
1)类是公共的
2)有一个无参的公共的构造器
3)有属性,且有对应的get、set方法(封装)


UML图



包对应于文件系统的目录,package语句中,用 “.” 来指明包(目录)的层次(一层目录);


包内部类不重名


为使用定义在不同包中的Java类,需用import语句来引入指定包层次下所需要的类或全部类(.*)。import语句告诉编译器到哪里去寻找类。
语法格式:
    import  包名[.子包名…]. <类名 |*>
应用举例:
    import  p1.Test;   //import p1.*;表示引入p1包中的所有类
    public class TestPackage{
        public static void main(String args[]){
                  Test t = new Test();          //Test类在p1包中定义
                  t.display();
        }
      }

可以使用import lee.* ;语句,表明导入lee包下的所有类。而lee包下sub子包内的类则不会被导入。import lee.sub.*;


import语句不是必需的,可坚持在类里使用其它类的全名


JDK 1.5加入import static语句//导入类静态属性或方法


如下所示

import static java.lang.System.out




猜你喜欢

转载自blog.csdn.net/lwz45698752/article/details/80048122
1.3