zoukankan      html  css  js  c++  java
  • Java关键字final与static

      Java关键字final与static由广州疯狂软件java培训分享:

      首先,我们需要知道final这个词是什么意思,英文解释如下:

      final : adj.最终的,不可更改的

      在Java中,final代表的要是最终,可以称之为完结器.我们可以用它来声明属性,方法或类.

      使用final声明需要注意以下几点:

      1.声明的类不能有子类

      2.声明的方法不能被子类覆写

      3.声明的变量是常量,不可更改,且要求全部字母大写(常常用final+static来声明全局常量)

      接下来,看看static

      static : adj.静态的

      先看看static声明的属性:如果程序中用static声明属性,则此属性称为全局属性,那么它有什么用呢?

      我们先来看一段代码:

      class Person{

      String name;

      int age;

      String country = "A城";

      public Person(String name, int age) {

      this.name = name;

      this.age = age;

      }

      public void info(){

      System.out.println("姓名: "+this.name+" ,年龄: "+this.age+" ,城市:

      "+this.country);

      }

      }

      public class Test{

      public static void main(String []args){

      Person p1 = new Person("张三",30);

      Person p2 = new Person("李四",35);

      Person p3 = new Person("王五",40);

      p1.info();

      p2.info();

      p3.info();

      }

      }

      此程序输出为:

      姓名: 张三 ,年龄: 30 ,城市: A城

      姓名: 李四 ,年龄: 35 ,城市: A城

      姓名: 王五 ,年龄: 40 ,城市: A城

      注:以上代码为了观看方便,没有进行封装.

      问题来了,如果现在我不想叫A城了,改叫B城,但是已经产生了5000个对象,那我岂不是要一个一个这样去改?

      p1.country="B城",p2.country="B城",p3.country="B城".....pn.country="B城"..

      此时,我们需要把country当作是全局变量来处理,只要任何一个地方改了,那么其他读取它的地方也就改了

      只需要把属性声明改成:

      static String country = "A城";

      即可.

      这样,我们有以下测试代码:

      class Person{

      String name;

      int age;

      static String country = "A城";

      public Person(String name, int age) {

      this.name = name;

      this.age = age;

      }

      public void info(){

      System.out.println("姓名: "+this.name+" ,年龄: "+this.age+" ,城市:

      "+this.country);

      }

      }

      public class Test{

      public static void main(String []args){

      Person p1 = new Person("张三",30);

      Person p2 = new Person("李四",35);

      Person p3 = new Person("王五",40);

      System.out.println("修改之前------------------------");

      p1.info();

      p2.info();

      p3.info();

      System.out.println("修改之后------------------------");

      p1.country="B城";

      p1.info();

      p2.info();

      p3.info();

      }

      }

      程序输出为:

      修改之前------------------------

      姓名: 张三 ,年龄: 30 ,城市: A城

      姓名: 李四 ,年龄: 35 ,城市: A城

      姓名: 王五 ,年龄: 40 ,城市: A城

      修改之后------------------------

      姓名: 张三 ,年龄: 30 ,城市: B城

      姓名: 李四 ,年龄: 35 ,城市: B城

      姓名: 王五 ,年龄: 40 ,城市: B城

      其实,在修改country时,我们最好利用类来对他进行修改,而不是具体的对象:

      即应该把p1.country改成Person.country

      再看看static声明的方法

      用static声明的方法一般称之为类方法

      class Person{

      String name;

      int age;

      static String country = "A城";

      public Person(String name, int age) {

      this.name = name;

      this.age = age;

      }

      public void info(){

      System.out.println("姓名: "+this.name+" ,年龄: "+this.age+" ,城市:

      "+this.country);

      }

      public static void all(){

      System.out.println("这是类方法");

      }

      }

      public class Test{

      public static void main(String []args){

      Person p1 = new Person("张三",30);

      Person p2 = new Person("李四",35);

      Person p3 = new Person("王五",40);

      p1.info();

      p2.info();

      p3.info();

      p1.all();

      Person.all();

      }

      }

      需要注意的是,因为static声明的东西在编译时就需要确定,所以一般方法可以调用static声明的属性和方法,反之则不行!

      说到这里,我们就提一下main方法

      一个方法要被主方法调用,必须采用如下声明:

      public static 返回值类型 方法名称(参数列表){}

      之所以这样,是因为主方法是静态方法,它是不能调用非静态方法的!

      疯狂软件教育中心紧扣IT前沿技术的脉搏,高瞻远瞩立于潮头,引领行业标杆,开创IT教育培训的新天地,被称为新式IT教育的“黄埔军校”。疯狂软件教育中心主要面向大学生和准大学生的长期就业培训、企业员工定制内训、在职工程师的短期高端培训以及企业级应用的产品研发,其专业服务和质量承诺在客户中赢得广泛的声誉。

      疯狂软件教育中心结合自身特色,打破固有思维模式,以突出实战性,系统性,学识转换相结合的理念体系指引下,注重如何将培训内容真正转化为实操经验,以此促进工作能力的达成。在疯狂软件学院,学员通过参与企业实际项目开发,学以致用,获得实际项目经验。凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路,大量毕业即失业的学子已通过疯狂软件教育中心实现了就业。

  • 相关阅读:
    2017.0710.《计算机组成原理》-信息的校验
    2017.0707.《计算机组成原理》-汉明码
    2017.0706.《计算机组成原理》-存储器的校验
    基于mpvue的小程序项目搭建的步骤一
    微信小程序图片使用示例
    如何给小程序页面加载一张背景图片
    【组件】微信小程序input搜索框的实现
    基于cropper.js的图片上传和裁剪
    经典小程序源码及其下载地址
    【前端切图】用css画一个卡通形象-小猪佩奇
  • 原文地址:https://www.cnblogs.com/gojava/p/3682815.html
Copyright © 2011-2022 走看看