Java中的部分关键字的用法
1.this关键字
(1)通过this关键字调用成员变量,解决局部变量与成员变名称冲突问题.
public class Person {
String name;
Person(String name){
this.name=name;
}
}
(2)调用成员方法
public class Person {
String name;
public void soutName()
{
System.out.println(name);
}
public void showMes(){
this.soutName();
}
}
(3)调用构造方法
注意:
①只能在构造方法中使用this调用其它构造方法,不能在其它成员方法中调用.
②必须放在第一行,且只能出现一次
③不能在两个构造方法中使用this互相调用
public class Person {
String name;
Person(){
System.out.println("调用无参构造");
}
Person(String name){
this();
System.out.println("调用有参构造");
}
public static void main(String[] args) {
Person person = new Person("张三");
}
}
2.static关键字
static关键字用于修饰类的成员,如成员变量,成员方法及代码块等,被static修饰的成员具有一定的特殊性.
(1)静态变量
:在内存中只有一份,且被每一个实例对象所共享.
静态变量可以用类名直接来进行访问
class work{
public static String worklist="1111";
}
public class Person {
public static void main(String[] args) {
System.out.println(work.worklist);
}
}
注意:static关键字只能用于修饰成员变量,不能用于修饰局部变量.
(2)静态方法
静态方法可以使用两种方式来访问
class work{
public static String worklist="1111";
public static void show(){
System.out.println(worklist);
}
}
public class Person {
public static void main(String[] args) {
// 1.类名.方法
work.show();
// 2.实例对象名.方法
work newwork = new work();
newwork.show();
}
}
注意:在一个静态方法中,只能访问用static修饰的成员;原因:未被static修饰的成员需要先创建实例才能访问,而静态方法在被调用时可以不创建任何对象.
(3)静态代码块
static{
...
}
当类被加载时,静态代码块被执行,由于类只加载一次,因此静态代码块也只执行一次.通常使用静态代码块来对类的成员变量进行初始化.
class work{
static {
System.out.println("执行了静态代码块");
}
}
public class Person {
public static void main(String[] args) {
work work1 = new work();
work work2 = new work();
}
3.super关键字
super关键字用于访问父类的成员,例如访问父类的成员变量,成员方法,构造方法.
(1)使用super关键字来调用父类的成员变量和成员方法.
class Animals{
String name="动物";
public void shout(){
System.out.println("动物叫");
}
}
class cat extends Animals{
String name="cat";
public void shout()
{
super.shout();
System.out.println(super.name);
}
}
public class review03 {
public static void main(String[] args) {
cat cat = new cat();
cat.shout();
}
}
(2)使用super关键字调用父类构造方法
class Animals{
String name="动物";
Animals(String name){
System.out.println("i am"+name);
}
}
class cat extends Animals{
String name="cat";
cat(String name) {
super(name);
}
}
public class review03 {
public static void main(String[] args) {
cat cat1 = new cat("喵喵喵");
}
}
注意:
①super调用父类构造方法的代码必须出现在子类构造方法的第一行,且只能出现一次.
②子类在实例化时默认会调用父类的无参构造方法;因此:在定义一个类时,当定义了一个有参构造后,尽量在类中再定义一个无参构造,这样可以避免该类在继承时出错.
4.final关键字
Java中被final关键字修饰的变量称为常量,只能被赋值一次.
注意:
①当成员变量被final修饰时,在声明变量的同时必须进行初始化赋值,否则程序会报错.
②子类在实例化时默认会调用父类的无参构造方法;因此:在定义一个类时,当定义了一个有参构造后,尽量在类中再定义一个无参构造,这样可以避免该类在继承时出错.
4.final关键字
Java中被final关键字修饰的变量称为常量,只能被赋值一次.
注意:当成员变量被final修饰时,在声明变量的同时必须进行初始化赋值,否则程序会报错.