[b]关键字总结[/b]
1. 访问权限修饰符
访问权限修饰符有:private protected public 这些都是java的关键字,用来修饰成员变量和方法。其中不能用protected 和private 修饰类。
访问权限的级别排列,按访问权限从高到低的排列顺序是: public 、protected、默认的(友好的)、 private。
public 关键字可以放在类的前面,修饰类。表示这个类可以被其它包中的类的对象访问。且public 限定的类在一个文件中只允许有一个。且类名必须与文件名相同。
public修饰的成员变量和方法是共有的。可以在同一个project中任何另外一个类中,使用该类创建对象,该对象能访问自己的public变量和类中的public方法。
如:
class A{
public String name ; //name 被修饰为public的String 型变量
public int score(){ //方法score 是public 方法
}
}
class B{
void study(){
A stu=new A();
stu.name=”张三”; //访问自己的public变量
stu.score(); //访问自己的public方法
}
}
protected修饰的成员变量和方法是受保护的。
如:
class A{
protected String name; //name 是被修饰为protected型变量
protected int score(){ //方法score 是protected方法
}
}
当在同一个package另外一个类中用A类创建对象,那么该对象能访问自己 的protected变量和protected方法。
class B{
void study(){
A stu=new A();
stu.name=”李四”; //访问自己的protected变量
stu.score(); //访问自己的protected方法
}
}
如果一个类中的变量和方法没有访问修饰符修饰,则它们被称为友好变量和友好方法。在同一个package另外一个类中使用这个类创建对象,该对象能访问自己的友好变量和友好方法。如果在源文件中用import 语句引入了另外一个包中的类,并用该类创建了对象,那么该类的这个对象是不能访问自己的友好变量和友好方法。
private 修饰的成员变量和方法是私有变量和私有方法。
如:
class A{
private String name; //name 是被修饰为private型变量
private int score(){ //方法score 是private方法
}
}
在类继承时,父类中的private方法不能被子类继承。
只有在本类中创建对象的时候,这个对象才能访问自己的私有变量和类中的私有方法。当在另外一个类中用类A创建了一个对象后,该对象不能访问自己的私有变量和私有方法。
class B{
void study(){
A stu=new A();
stu.name=”李四”; //非法的!不能访问自己的private变量
stu.score(); //非法!不能访问自己的private方法
}
}
2 . this关键字
this可以出现在实例方法和构造方法中,但不可以出现在类方法中,因为类方法可以通过类名直接调用。
this关键字来区分属性和参数,加上this的表示属性,没有加的通常是参数。
①this关键字是用来表示当前对象的。相当于现实生活中"我"这个词。哪一个对象在调用方法,那么this就表示该对象。
②this可以出现在类的构造方法中,这时this表示调用构造方法
public class animals{
private String name;
public animals(){
this(“狗”);//构造器中调用构造器
}
public animals (String name){
this.name=name; //加this的表示属性,没加的表示参数
}
public void voice(){
System.out.println(name+“叫的声音是:旺旺。。。。。”);
}
}
3.super 关键字(类似this)
①可以使用super关键字引用父类的对象从而调用父类中的方法。
②子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的构造方法中使用super,而且super必须是子类构造方法中的头一条语句。(构造器中调用构造器)
4. final 关键字
表示不可以改变。
final修饰属性,则属性的值就是常量,常量必须赋给初值,这个属性的值不可以改变。
final修饰参数,则该参数的值不能被改变。
public final修饰方法,那么当子类继承父类时,不可以重写父类中的该方法。
final类不能被继承,不能有子类。
class A{
final double N; //不合法,因为没有赋初值
final double N=30; //N是常量
public double getLength( final doubel c){
c=50; //非法,因为c 的值不允许被改变
return N+c;
}
}
public class eg{
public static void mian(String [] args){
A a=new A();
System.out.println(“长度为:”+a.getLength(40));
}
}
5. static 关键字
①用static 修饰的变量是类变量。当一个类创建多个不同的对象,这些对象的实例变量被分配不同的内存空间,而所有的对象的类变量都分配给相同的一个内存,所有对象共享类变量。改变其中一个对象的类变量就会影响其他对象的这个类变量。
②使用static修饰的方法是类方法。当一个类创建对象后,非static方法必须通过这个对象调用。而static方法则不需要,它可以直接通过 类名.static方法名()来调用。
static方法中,可以直接调用static方法,但如果要调用实例方法则必须创建对象,通过对象才能调用。
当类的字节码文件被加载时,类的实例方法不会被分配入口地址,当类创建对象时,类中的实例方法才分配入口地址,且方法的入口地址被所有的对象共享,当所有对象都不存在时,方法的入口地址才被取消。
但对于类方法,在该类被加载时到内存时,就分配了相应的入口地址。所以,类方法不仅可以被类创建的任何对象调用,也可以直接通过类名调用。类方法的入口地址直到程序退出时才被取消。所有类方法中的成员变量必须是被所有对象共享的类变量,即类方法中不可以操作实例变量。
1. 访问权限修饰符
访问权限修饰符有:private protected public 这些都是java的关键字,用来修饰成员变量和方法。其中不能用protected 和private 修饰类。
访问权限的级别排列,按访问权限从高到低的排列顺序是: public 、protected、默认的(友好的)、 private。
public 关键字可以放在类的前面,修饰类。表示这个类可以被其它包中的类的对象访问。且public 限定的类在一个文件中只允许有一个。且类名必须与文件名相同。
public修饰的成员变量和方法是共有的。可以在同一个project中任何另外一个类中,使用该类创建对象,该对象能访问自己的public变量和类中的public方法。
如:
class A{
public String name ; //name 被修饰为public的String 型变量
public int score(){ //方法score 是public 方法
}
}
class B{
void study(){
A stu=new A();
stu.name=”张三”; //访问自己的public变量
stu.score(); //访问自己的public方法
}
}
protected修饰的成员变量和方法是受保护的。
如:
class A{
protected String name; //name 是被修饰为protected型变量
protected int score(){ //方法score 是protected方法
}
}
当在同一个package另外一个类中用A类创建对象,那么该对象能访问自己 的protected变量和protected方法。
class B{
void study(){
A stu=new A();
stu.name=”李四”; //访问自己的protected变量
stu.score(); //访问自己的protected方法
}
}
如果一个类中的变量和方法没有访问修饰符修饰,则它们被称为友好变量和友好方法。在同一个package另外一个类中使用这个类创建对象,该对象能访问自己的友好变量和友好方法。如果在源文件中用import 语句引入了另外一个包中的类,并用该类创建了对象,那么该类的这个对象是不能访问自己的友好变量和友好方法。
private 修饰的成员变量和方法是私有变量和私有方法。
如:
class A{
private String name; //name 是被修饰为private型变量
private int score(){ //方法score 是private方法
}
}
在类继承时,父类中的private方法不能被子类继承。
只有在本类中创建对象的时候,这个对象才能访问自己的私有变量和类中的私有方法。当在另外一个类中用类A创建了一个对象后,该对象不能访问自己的私有变量和私有方法。
class B{
void study(){
A stu=new A();
stu.name=”李四”; //非法的!不能访问自己的private变量
stu.score(); //非法!不能访问自己的private方法
}
}
2 . this关键字
this可以出现在实例方法和构造方法中,但不可以出现在类方法中,因为类方法可以通过类名直接调用。
this关键字来区分属性和参数,加上this的表示属性,没有加的通常是参数。
①this关键字是用来表示当前对象的。相当于现实生活中"我"这个词。哪一个对象在调用方法,那么this就表示该对象。
②this可以出现在类的构造方法中,这时this表示调用构造方法
public class animals{
private String name;
public animals(){
this(“狗”);//构造器中调用构造器
}
public animals (String name){
this.name=name; //加this的表示属性,没加的表示参数
}
public void voice(){
System.out.println(name+“叫的声音是:旺旺。。。。。”);
}
}
3.super 关键字(类似this)
①可以使用super关键字引用父类的对象从而调用父类中的方法。
②子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的构造方法中使用super,而且super必须是子类构造方法中的头一条语句。(构造器中调用构造器)
4. final 关键字
表示不可以改变。
final修饰属性,则属性的值就是常量,常量必须赋给初值,这个属性的值不可以改变。
final修饰参数,则该参数的值不能被改变。
public final修饰方法,那么当子类继承父类时,不可以重写父类中的该方法。
final类不能被继承,不能有子类。
class A{
final double N; //不合法,因为没有赋初值
final double N=30; //N是常量
public double getLength( final doubel c){
c=50; //非法,因为c 的值不允许被改变
return N+c;
}
}
public class eg{
public static void mian(String [] args){
A a=new A();
System.out.println(“长度为:”+a.getLength(40));
}
}
5. static 关键字
①用static 修饰的变量是类变量。当一个类创建多个不同的对象,这些对象的实例变量被分配不同的内存空间,而所有的对象的类变量都分配给相同的一个内存,所有对象共享类变量。改变其中一个对象的类变量就会影响其他对象的这个类变量。
②使用static修饰的方法是类方法。当一个类创建对象后,非static方法必须通过这个对象调用。而static方法则不需要,它可以直接通过 类名.static方法名()来调用。
static方法中,可以直接调用static方法,但如果要调用实例方法则必须创建对象,通过对象才能调用。
当类的字节码文件被加载时,类的实例方法不会被分配入口地址,当类创建对象时,类中的实例方法才分配入口地址,且方法的入口地址被所有的对象共享,当所有对象都不存在时,方法的入口地址才被取消。
但对于类方法,在该类被加载时到内存时,就分配了相应的入口地址。所以,类方法不仅可以被类创建的任何对象调用,也可以直接通过类名调用。类方法的入口地址直到程序退出时才被取消。所有类方法中的成员变量必须是被所有对象共享的类变量,即类方法中不可以操作实例变量。