Java零基础进阶篇之面向对象-final关键字

博主将陆续更新Java零基础进阶篇的知识点,本篇文章的内容主要围绕面向对象的final 关键字讲解,正在学习Java的同学们一定要关注哦~~

面向对象课程纲要:

  1. final关键字
  2. 抽象类
  3. 接口
  4. 抽象类与接口的区别
  5. Object 类 package 和import 访问权限控制

 1.1、final 关键字

final 表示不可改变的含义

  1. 采用final 修饰的类不能被继承
  2. 采用final 修饰的方法不能被覆盖
  3. 采用final 修饰的变量不能被修改
  4. final 修饰的变量必须显示初始化
  5. 如果修饰的引用,那么这个引用只能指向一个对象,也就是说这个引用不能再次赋值, 但被指向的对象是可以修改的
  6. 构造方法不能被final 修饰
  7. 会影响JAVA 类的初始化:final 定义的静态常量调用时不会执行java 的类初始化方法, 也就是说不会执行 static 代码块等相关语句,这是由 java 虚拟机规定的。我们不需要了解的很深,有个概念就可以了。
1.1.1 、 采用 final 修饰的类不能被继承
public class FinalTest01 {

public static void main(String[] args) {

}
}


final class A1 {
public void test1() {

}
}

//不能继承 A1,因为 A1 采用final 修饰了
class B1 extends A1 {

public void test2() {


}
}
1.1.2 、 采用 final 修饰的方法不能被覆盖
 
public class FinalTest02 {

public static void main(String[] args) {

}
}


class A1 {


public final void test1() {


}
}


class B1 extends A1 {


//覆盖父类的方法,改变其行为
//因为父类的方法是final 修饰的,所以不能覆盖
public void  test1() {


}


public void  test2() {


}
}

1.1.3 、 采用 final 修饰的变量 ( 基本类型 ) 不能被修改
public class FinalTest03 {


private static final long CARD_NO = 878778878787878L;

public static void main(String[] args) {
//不能进行修改,因为CARD_NO 采用final 修改了
CARD_NO = 99999999999999L;
}
}

1.1.4 final 修饰的变量必须显示初始化
public class FinalTest04 {

//如果是final 修饰的变量必须初始化
private static final long CARD_NO = 0L;


public static void main(String[] args) { int i;
//局部变量必须初始化
//如果不使用可以不初始化System.out.println(i);
}
}
1.1.5 、 如果修饰的引用,那么这个引用只能指向一个对象,也就是说这个 引用不能再次赋值,但被指向的对象是可以修改的
 
public class FinalTest05 {


public static void main(String[] args) { Person p1 = new Person();

//可以赋值p1.name = "张三";
System.out.println(p1.name);


final Person p2 = new Person(); p2.name = " 李 四 "; System.out.println(p2.name);

//不能编译通过
//p2 采用 final 修饰,主要限制了 p2 指向堆区中的地址不能修改(也就是
p2 只能指向一个对象)
//p2 指向的对象的属性是可以修改的
p2 = new Person();


}
}


class Person {


String name;
}

以上就是final关键字的学习内容了,配套视频教程,下一篇将继续更新面向对象的抽象类知识点,正在学习的同学记得关注哦!!

Java零基础进阶视频教程

 

 
 
 
 
 
 
 

你可能感兴趣的:(Java学习资料,Java学习视频教程,纯干货,抽象类,java,编程语言,设计模式,多态)