前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java类、对象和方法的应用

Java类、对象和方法的应用

作者头像
Bess Croft
发布2020-04-03 11:17:36
6810
发布2020-04-03 11:17:36
举报
文章被收录于专栏:贝丝的专栏贝丝的专栏

前言

相信大家在接触Java之后,一定不会对类和方法陌生吧?很多人把基础学完,简单的编程对于自己来说轻轻松松,但是复(zhuang)杂(bi)一点的代码对于刚学会的人来说,还是比较费时间的!下面我们就来看看把!!!

What?

简单的基础知识就不做回顾了,我们直接开始!

静态的定义

Sometimes, you want to have variables that are common to all objects. This is accomplished with the static modifier. Fields that have the static modifier in their declaration are called static fields or class variables. They are associated with the class, rather than with any object.

以上是 Oracle 对于静态的定义。大意为,有时候,你想拥有所有对象通用的变量。 这是通过静态修改器完成的。 在其声明中具有静态修饰符的字段称为静态字段或类变量。 他们与类相关,而不是与任何对象相关联。

Demo

我们以一个简单的例子来看:

代码语言:javascript
复制
public class KingDragon_1{
   public static void main(String[] args)
   throws java.io.IOException{
   char ch,ignore;
   do
   {
   do
   {
     System.out.println("问题:杨金龙帅不帅?");
     System.out.println("你有2个选择:1.帅! 2.不帅!");
     System.out.println("请输入你的答案:");
     ch = (char)System.in.read();
     do
     {
        ignore = (char)System.in.read();
     }while(ignore != '\n');//这个do-while循环用于防止产生输入错误!
     if(ch!='1')System.out.println("输入有误,请重新输入!");
   }while(ch<'1'||ch>'2');
   System.out.println("\n");
      switch(ch)
      {
      case '1':
        System.out.println("恭喜你答对了!");
        break;
      case '2':
       System.out.println("你心里没点B数?");
       System.out.println("\n");
       break;
      }  
   }while(ch!='1');
 }
}                                                           
  大家可以看到,这是最简便的方法,只是简单的运用了一些循环体结构。那么,我们以更复(zhuang)杂(bi)的代码应该怎样去做呢?其实这些代码也并不那么复杂,以构建类和方法的形式来写,反而是提升了效率!

复习

代码语言:javascript
复制


由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,
那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。
不同的对象的实例变量将被分配不同的内存空间, 如果类中的成员变量有类变量,那么所有对象的这
个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量,
也就是说对象共享类变量。
成员变量和静态变量的区别:
• 成员变量所属于对象。所以也称为实例变量。
 静态变量所属于类。所以也称为类变量。
• 成员变量存在于堆内存中。
 静态变量存在于方法区中。
• 成员变量随着对象创建而存在。随着对象被回收而消失。
 静态变量随着类的加载而存在。随着类的消失而消失。
• 成员变量只能被对象所调用 。
 静态变量可以被对象调用,也可以被类名调用。
   所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。
NEW


那么我们接下来继续,对于刚才的代码,我们来做一些小改进:
import java.io.*;
public class KingDragon_2
{
   static char ch;
   char ignore;
   String set;
   void KingDragon_2() throws IOException
   {
    do
   {
     System.out.println("问题:杨金龙帅不帅?");
     System.out.println("你有2个选择:1.帅! 2.不帅!");
     System.out.println("请输入你的答案:");
     ch = (char)System.in.read();
     do
     {
        ignore = (char)System.in.read();
     }while(ignore != '\n');//这个do-while循环用于防止产生输入错误!
   if(ch!='1')System.out.println("输入有误,请重新输入!");
   }while(ch<'1'||ch>'2');
   System.out.println("\n");
   }
   void blue()
   {
   switch(ch)
      {
      case '1':
        System.out.println("恭喜你答对了!");
        break;
      case '2':
       System.out.println("你心里没点B数?");
       System.out.println("\n");
       break;
      }  
   } 
 public static void main(String[] args)
   throws IOException{
     do{
        KingDragon_2 dodo = new KingDragon_2();//KingDragon_2()是KingDragon_2类的默认构造函数
        dodo.KingDragon_2();//使用不带参数构造函数来实例化对象
        dodo.blue();//使用不带参数构造函数来实例化对象
        }while(ch!='1');
   }
}                                                          
  上面的例子,我们通过已创建的对象来访问成员变量和成员方法,尤其注意的是,上面的代码使用的静态变量,这个可不是一个新概念哟!

本期小结



• java因强制要求类名(唯一的public类)和文件名统一,因此在引用其它类时无需显式声明。在编译时,编译器会根据类名去寻找同名文件。

本期名言



• 任何你写的代码,超过 6 个月不去看它,当你再看时,都像是别人写的。(Eagleson’s law)


『如果您有什么建议,还请留言或者私信哦!如果您喜欢,点击关注我们,并分享到朋友圈!』


未
完
待
续
想学Java或者其它计算机语言的你,是否有过迷茫呢?没关系,私信龙先森,让龙先森对你一对一解答!

『好了,本期就说到这,一期一篇,有精华有干货,有时也划水,还希望大家多多支持。如果你喜欢龙先森的文章,不妨点击下关注,并分享至朋友圈!』 〖笔者注:若文本图片有侵权,请联系作者删除,或另行协商〗


*版权声明:版权归作者本人所有,尊重原创,推送文章除非无法确认,都会注明作者和来源。如果出处有误或侵犯到原作者权益,实属无心之举,请务必与我联系删除或授权事宜。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爪哇派生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档