文章36 | 阅读 16929 | 点赞0
final关键字是最终的意思,可以修饰类,成员变量(在类中,方法外),成员方法。
修饰类,类不能被继承
修饰变量,变量就成了常量,只能被赋值一次
修饰方法,方法不能被重写
代码:
final1
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 父类 final关键字的概述及特点
*
*/
public class final1 {
public final void method() {
System.out.println("method father");
}
}
final2
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 子类 final关键字的概述及特点
*
*/
public class final2 extends final1 {
public final int age = 20;
public void show() {
//age=10; //The final field final2.age cannot be assigned
System.out.println(age);
}
//final 修饰的父类方法不能被重写
//java.lang.VerifyError: class Java_study.final2 overrides final method method.
/*
@Override
public void method(){
System.out.println("method son")
}
*/
}
final3
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 测试类 final关键字的概述及特点
*
*/
public class final3 {
public static void main(String[] args) {
final2 son = new final2();
son.show();//20
son.method();//method father
}
}
测试记录:
20
method father
静态static的概述:
当在定义类的时候,类中都会有相应的属性和方法。而属性和方法都是通过创建本类对象调用的。当在调用对象的某个方法时,这个方法没有访问到对象的特有数据时,方法创建这个对象有些多余。可是不创建对象,方法又调用不了,这时就会想,那么我们能不能不创建对象,就可以调用方法呢?
可以的,我们可以通过static关键字来实现。static它是静态修饰符,一般用来修饰类中的成员。
静态static的特点:
被类的所有对象共享
这也是我们判断是否使用静态关键字的条件
可以通过类名调用
优先于对象存在
随着类的加载而加载
代码:
static1
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 学生类
*
*/
public class static1 {
public String name;
public int age;
//public String graduateFrom;//毕业院校
public static String graduateFrom;//毕业院校
public void show() {
System.out.println(name + "---" + age + "---" + graduateFrom);
}
}
static2
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 学生类测试类
*
*/
public class static2 {
public static void main(String[] args) {
//B: 可以直接通过类名直接访问
static1.graduateFrom = "五道口职业技术学院";
static1 s1 = new static1();
s1.name = "杜兰特";
s1.age = 32;
//E:不应该通过实例访问静态成员
//s1.graduateFrom = "传智学院";
s1.show();//杜兰特---32--五道口职业技术学院
}
}
测试记录:
杜兰特---32---五道口职业技术学院
静态方法的访问特点:
静态方法只能访问静态的成员变量和静态的成员方法
静态方法的注意事项
在静态方法中是没有this,super关键字的
静态的内容是随着类的加载而加载
this 和 super 是随着对象的创建而存在
代码:
static3
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 学生类 static方法的访问特点及注意事项
*/
public class static3 {
//非静态的成员变量
private String name = "杜兰特";
//今天的成员变量
private static int age = 30;
// A.非静态的成员方法
public void show() {
//a1.非静态的成员方法能访问非静态的成员变量
this.name = "刘德华";
System.out.println(name);
//a2.非静态的成员方法能访问静态的成员变量
System.out.print(age);
//a3.非静态的成员方法能访问非静态的成员方法
show3();
//a4.非静态的成员方法能访问静态的成员方法
show4();
}
// B. 静态的成员方法
public static void show2() {
//c1:静态成员方法中不能出现this,super这样的关键字
//this.age;
//this.name;
//b1.静态成员方法不能访问非静态成员变量
//System.out.println(name);
//b2. 静态的成员方法能访问静态的成员变量
System.out.println(age);
//b3. 静态的成员方法能访问静态的成员方法
show3();
//b4. 静态成员方法不能访问非静态成员方法
//show4();
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/u010520724/article/details/119781780
内容来源于网络,如有侵权,请联系作者删除!