zoukankan      html  css  js  c++  java
  • 2020年8月16日 关键字final,native

    /*
    * 学习修饰符时,希望大家问自己问题?
    * (1)修饰符本身的意思
    * (2)它可以修饰什么?
    * (3)它修饰后有什么不同?
    *
    *
    * final:修饰符的一种
    * 1、意思:最终的
    * 2、final可以修饰:类(外部类、内部类)、变量(成员变量(类变量、实例变量)、局部变量)、方法(静态方法、非静态方法)
    * 3、修饰后有什么不同?
    * (1)修饰类:表示这个类不能被继承了,我们可以称它为“太监类”
    * 例如:String、System、Math
    *
    * (2)修饰方法:表示这个方法不能被重写
    *
    * (3)修饰变量:表示这个变量的值不能被修改,即我们称为的“常量”
    * 常量有两种:
    * 一种是字面常量:例如:"hello",12,'a'
    * 一种是final声明的变量:final int A = 10;
    *
    * 这里要说明一下,常量的命名应该是所有单词都大写,每个单词之间使用_
    *
    * 回忆:权限修饰符
    * private、缺省、protected、public
    */

    package com.atguigu.test01;
    
    
    public class TestFinal {
        final int NUM = 10;
        
        public int getNUM() {
            return NUM;
        }
    /*    public void setNUM(int num){
            this.NUM = NUM;
        }*/
    
        public static void main(String[] args) {
            Son s = new Son();
            s.method();
            
            final int A = 10;
            //A = 20;//不能修改a的值
        }
        
        public static void change(final Circle c){
    //        c = new Circle();//错误的,因为c是常量
            c.radius *= 2; //因为radius的前面没有final,可以修改
        }
    }
    class Circle{
        double radius;
    }
    final class TaiJian{
        
    }
    /*class Sub extends TaiJian{
        
    }*/
    
    class Father{
        public void test(){
            //...
        }
        public final void method(){
            //..
        }
    }
    class Son extends Father{
    
        @Override
        public void test() {
            super.test();
        }
        
        /*public final void method(){
            //..
        }*/
    }

    /*
    * native:也是一个修饰符
    * 1、意思:原生的、本地的
    * 2、可以修饰什么?
    * 可以修饰方法
    * 3、它修饰的方法有什么不同?
    *
    * 语法格式:
    * 【修饰符】 class 类{
    * 【其他修饰符】 native 返回值类型 方法名(【形参列表】);
    * }
    * native修饰的方法,看不见方法体。
    * native修饰的方法,不是用Java语言实现的,而是调用了底层C/C++的代码,这些代码
    * 被编译为.dll文件,让Java来执行的。
    *
    * 4、特殊
    * (1)native方法,对于Java程序员来说,该怎么调用还怎么调用
    * (2)子类还可以选择对它进行重写
    *
    */

    package com.atguigu.test02;
    public class TestNative {
        public static void main(String[] args) {
            Object obj = new Object();
            System.out.println(obj.hashCode());
        }
    }
    class MyClass extends Object{
    
        //重写父类的native方法
        @Override
        public int hashCode() {
            return 1;
        }
        
    }
  • 相关阅读:
    jsp mysql 配置线程池
    服务端 模拟 检测 攻击。。乱写
    硕思闪客精灵 7.2 破解版
    unity UnityAwe 插件
    smartfoxserver 2x 解决 Math NAN
    unity 断点下载
    java 监听文件目录修改
    wind7 64 setup appjs
    sfs2x 修改jvm 内存
    unity ngui 解决图层问题
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13512920.html
Copyright © 2011-2022 走看看