刚刚开始学习java 觉得还是蛮有意思的 不过始终没有好好地总结下 因为很多东西讲的时候感觉懂了,但是一敲起代码就开始有点不清楚了 做的东西自己不满意,所以一直没发上来 现在想通了 初学者嘛 还是不求快、但求稳 废话有点多 呵呵
也见过一些常见关键字了 现在小小总结下 求指正
1、public
public 应该是作用域最大的关键字、凡是加了public的属性、方法、类都可以被其他的类、文件、project调用,继承了父类的子类就可以直接调用父类中的public类型的数据、方法,比如很多引用的时候直接调用的方法
javax.swing.JFrame jf ;
jf.setSize()调用的就是java自带的包里前面加了 public 的方法
2、protected
protected 作用域介于public与默认的(friendly)之间,不能用来修饰类,只能用来修饰方法、属性。
某个类中用protected修饰的属性、方法,可以在同一个包中不同的类中被调用,可以被子类继承,也可以在另一个包中被它的子类对象调用,除此之外不能被其它的包中的对象调用
3、默认(friendly)
并没有friendly这一实际关键字,只不过用来表示默认。 默认的类、方法、属性前面没有限定词,可以在同一个类、同一个包中不同的类中被调用,不能被子类继承直接使用,也不能被其它包中的类调用。
4、private
private是作用域最小的限定符,不能修饰类,只能用来修饰类中的属性、方法。用private修饰的属性、方法只能在当前类中使用,不能被同一个包中其它的类使用,也不能继承,更不能被其它包中的类调用
总的来说,可以用一下表格清晰表示(源自网络)
作用域 当前类 同一package 子孙类 其他包
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
5、static
static 属性被称为类属性,有三个特征:①某个类的一个对象的加了static的属性,那么一旦这个对象的该属性值被改变,则所有该类的其他的对象中的该属性值就会一起改变,连续改变改属性值,则最后一次改变后的属性值是最终所有该类的对象的该属性值。
②定义了static的属性和方法,可以不创建对象,直接调用, 如某个类
public class Test(){
static int a=0;
}
//调用时可以直接用类调用
int b=Test.a;
③static类型的属性、方法在程序运行时先行装载
6、this
this有两个用处:①指代当前的对象
//创建一个学生对象:一个参数的构造器
String name="zyh";
Student st=new Student(name);
public Student(String name){
this.name=name;
}
this指代的就是st指向的对象
②在构造器中调用自己的另一个构造器,根据传入的参数数目及类型来匹配相应的构造器
public A(){
this("name",0);
}
public A(String name,int n){
this.name=name;
this.n=n;
}
第一个构造器中的this作用即是调用第二个构造器,第二个构造器中的this作用是指向当前对象。
ps:一个构造器中用this调用调用另一个构造器,只能调用一次,代码必须在第一行。
7、super
super指的是当前类的父类的对象,比如重绘时在重写父类的paint(Graphics g)方法时,必须要用super.paint(g)重绘窗体,用的是父类的对象,调用父类的方法,而不是重写后的方法
还有很多,边学,边用,边总结吧,继续努力!
也见过一些常见关键字了 现在小小总结下 求指正
1、public
public 应该是作用域最大的关键字、凡是加了public的属性、方法、类都可以被其他的类、文件、project调用,继承了父类的子类就可以直接调用父类中的public类型的数据、方法,比如很多引用的时候直接调用的方法
javax.swing.JFrame jf ;
jf.setSize()调用的就是java自带的包里前面加了 public 的方法
2、protected
protected 作用域介于public与默认的(friendly)之间,不能用来修饰类,只能用来修饰方法、属性。
某个类中用protected修饰的属性、方法,可以在同一个包中不同的类中被调用,可以被子类继承,也可以在另一个包中被它的子类对象调用,除此之外不能被其它的包中的对象调用
3、默认(friendly)
并没有friendly这一实际关键字,只不过用来表示默认。 默认的类、方法、属性前面没有限定词,可以在同一个类、同一个包中不同的类中被调用,不能被子类继承直接使用,也不能被其它包中的类调用。
4、private
private是作用域最小的限定符,不能修饰类,只能用来修饰类中的属性、方法。用private修饰的属性、方法只能在当前类中使用,不能被同一个包中其它的类使用,也不能继承,更不能被其它包中的类调用
总的来说,可以用一下表格清晰表示(源自网络)
作用域 当前类 同一package 子孙类 其他包
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
5、static
static 属性被称为类属性,有三个特征:①某个类的一个对象的加了static的属性,那么一旦这个对象的该属性值被改变,则所有该类的其他的对象中的该属性值就会一起改变,连续改变改属性值,则最后一次改变后的属性值是最终所有该类的对象的该属性值。
②定义了static的属性和方法,可以不创建对象,直接调用, 如某个类
public class Test(){
static int a=0;
}
//调用时可以直接用类调用
int b=Test.a;
③static类型的属性、方法在程序运行时先行装载
6、this
this有两个用处:①指代当前的对象
//创建一个学生对象:一个参数的构造器
String name="zyh";
Student st=new Student(name);
public Student(String name){
this.name=name;
}
this指代的就是st指向的对象
②在构造器中调用自己的另一个构造器,根据传入的参数数目及类型来匹配相应的构造器
public A(){
this("name",0);
}
public A(String name,int n){
this.name=name;
this.n=n;
}
第一个构造器中的this作用即是调用第二个构造器,第二个构造器中的this作用是指向当前对象。
ps:一个构造器中用this调用调用另一个构造器,只能调用一次,代码必须在第一行。
7、super
super指的是当前类的父类的对象,比如重绘时在重写父类的paint(Graphics g)方法时,必须要用super.paint(g)重绘窗体,用的是父类的对象,调用父类的方法,而不是重写后的方法
还有很多,边学,边用,边总结吧,继续努力!