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;
        }
        
    }
  • 相关阅读:
    java 在线网络考试系统源码 springboot mybaits vue.js 前后分离跨域
    springboot 整合flowable 项目源码 mybiats vue.js 前后分离 跨域
    flowable Springboot vue.js 前后分离 跨域 有代码生成器 工作流
    Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
    java 进销存 商户管理 系统 管理 库存管理 销售报表springmvc SSM项目
    基于FPGA的电子计算器设计(中)
    基于FPGA的电子计算器设计(上)
    FPGA零基础学习:SPI 协议驱动设计
    Signal tap 逻辑分析仪使用教程
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13512920.html
Copyright © 2011-2022 走看看