西西河

主题:【原创】这才是有中国特色的Java程序!!! -- Highway

共:💬25 🌺8 新:
分页树展主题 · 全看首页 上页
/ 2
下页 末页
  • 家园 【原创】这才是有中国特色的Java程序!!!

    见过没有,这样的中英混杂的Java Code。你别以为我在搞笑,可以编译运行的。由于是Console App,所以在System.out.println函数里面没有直接使用中文。

    public class FunnyOne

    {

    public FunnyOne()

    {

    猫三 一个猫三 = new 猫三();

    一个猫三.灌水();

    一个猫三.板砖();

    }

    private class 猫三

    {

    private static final int 缺省水量 = 100;

    private int 年龄;

    private double 体重;

    private boolean 婚否;

    public 猫三()

    {

    年龄 = 25;

    体重 = 160.0d;

    婚否 = false;

    }

    private void 灌水()

    {

    灌水(缺省水量);

    }

    private void 灌水(int 水量)

    {

    System.out.println("Watering..." + 水量);

    }

    private void 板砖()

    {

    System.out.println("Throw Brick...");

    }

    }

    public static void main(String[] args)

    {

    new FunnyOne();

    }

    }

    如果你不能编译通过,那说明你Java功力尚浅,需要进一步学习。

    最后再给你留一道作业题,如果我把FunnyOne名字改为中文,你能编译通过吗,How???点看全图

    外链图片需谨慎,可能会被源头改

    关键词(Tags): #中国特色的Java

    本帖一共被 1 帖 引用 (帖内工具实现)
    • 家园 一点都不稀奇,.NET谁都可以这么做。

      public class 猪猪

      {

      private string _猪鼻子;

      private string _猪尾巴;

      public string 猪尾巴

      {

      get { return this._猪尾巴; }

      set { this._猪尾巴 = value; }

      }

      public 猪猪(int 猪鼻子长, int 猪尾巴长)

      {

      this._猪鼻子 = 猪鼻子长.ToString();

      this._猪尾巴 = this.转换猪尾巴(猪尾巴长);

      }

      public void 换猪鼻子(string 新猪鼻子)

      {

      this._猪鼻子 = 新猪鼻子;

      }

      private string 转换猪尾巴(int 猪尾巴长)

      {

      return string.Format("猪尾巴长:{0}", 猪尾巴长);

      }

      }

      static class Program

      {

      [STAThread]

      static void Main()

      {

      猪猪 一只猪 = new 猪猪(20, 50);

      Console.Write(一只猪.猪尾巴);

      }

      }

    • 家园 【原创】在SUSE上霸王硬上弓的一点进展

      昨天在SUSE上无法编译带中文类名的java程序,今天向了一个霸王硬上弓的方法,就是在PC上编译好了class,然后送到SUSE上运行。

      上传带有中文的文件名未遇到困难,但是从SUSE上一看文件名的中文部分成了乱码,运行也不成功。

      后来我把中文类名改成英文,但是保留中文变量名和输出中文内容。这样的程序送到SUSE上仍然无法通过编译。但是在PC上编译好了class以后送到SUSE上运行,却获得了成功,可以在显示器上输出中文。

    • 家园 今天拿到SUSE上的java1.5.0_05上编译,无法通过

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: warning: unmappable character for encoding UTF8

      è?? ???è?? = new è??

      ^

      FunnyOne.java:6: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:6: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:6: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:6: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:6: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:6: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:7: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:7: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:7: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:7: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:7: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:7: warning: unmappable character for encoding UTF8

      ???è??.???();

      ^

      FunnyOne.java:9: warning: unmappable character for encoding UTF8

      private class è??

      ^

      FunnyOne.java:9: warning: unmappable character for encoding UTF8

      private class è??

      ^

      FunnyOne.java:12: warning: unmappable character for encoding UTF8

      private int ????

      ^

      FunnyOne.java:12: warning: unmappable character for encoding UTF8

      private int ????

      ^

      FunnyOne.java:12: warning: unmappable character for encoding UTF8

      private int ????

      ^

      FunnyOne.java:12: warning: unmappable character for encoding UTF8

      private int ????

      ^

      FunnyOne.java:13: warning: unmappable character for encoding UTF8

      private double ????;

      ^

      FunnyOne.java:13: warning: unmappable character for encoding UTF8

      private double ????;

      ^

      FunnyOne.java:13: warning: unmappable character for encoding UTF8

      private double ????;

      ^

      FunnyOne.java:13: warning: unmappable character for encoding UTF8

      private double ????;

      ^

      FunnyOne.java:14: warning: unmappable character for encoding UTF8

      private boolean ???

      ^

      FunnyOne.java:14: warning: unmappable character for encoding UTF8

      private boolean ???

      ^

      FunnyOne.java:14: warning: unmappable character for encoding UTF8

      private boolean ???

      ^

      FunnyOne.java:16: warning: unmappable character for encoding UTF8

      public è??

      ^

      FunnyOne.java:16: warning: unmappable character for encoding UTF8

      public è??

      ^

      FunnyOne.java:18: warning: unmappable character for encoding UTF8

      ???? = 25;

      ^

      FunnyOne.java:18: warning: unmappable character for encoding UTF8

      ???? = 25;

      ^

      FunnyOne.java:18: warning: unmappable character for encoding UTF8

      ???? = 25;

      ^

      FunnyOne.java:18: warning: unmappable character for encoding UTF8

      ???? = 25;

      ^

      FunnyOne.java:19: warning: unmappable character for encoding UTF8

      ???? = 160.0d;

      ^

      FunnyOne.java:19: warning: unmappable character for encoding UTF8

      ???? = 160.0d;

      ^

      FunnyOne.java:19: warning: unmappable character for encoding UTF8

      ???? = 160.0d;

      ^

      FunnyOne.java:19: warning: unmappable character for encoding UTF8

      ???? = 160.0d;

      ^

      FunnyOne.java:20: warning: unmappable character for encoding UTF8

      ??? = false;

      ^

      FunnyOne.java:20: warning: unmappable character for encoding UTF8

      ??? = false;

      ^

      FunnyOne.java:20: warning: unmappable character for encoding UTF8

      ??? = false;

      ^

      FunnyOne.java:22: warning: unmappable character for encoding UTF8

      private void ???()

      ^

      FunnyOne.java:22: warning: unmappable character for encoding UTF8

      private void ???()

      ^

      FunnyOne.java:24: warning: unmappable character for encoding UTF8

      ???(???);

      ^

      FunnyOne.java:24: warning: unmappable character for encoding UTF8

      ???(???);

      ^

      FunnyOne.java:26: warning: unmappable character for encoding UTF8

      private void ???(int ?)

      ^

      FunnyOne.java:26: warning: unmappable character for encoding UTF8

      private void ???(int ?)

      ^

      FunnyOne.java:30: warning: unmappable character for encoding UTF8

      private void ???()

      ^

      FunnyOne.java:30: warning: unmappable character for encoding UTF8

      private void ???()

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: not a statement

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:5: illegal character: \65533

      è?? ???è?? = new è??

      ^

      FunnyOne.java:6: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:6: not a statement

      ???è??.???();

      ^

      FunnyOne.java:6: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:6: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:6: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:6: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:6: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:7: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:7: not a statement

      ???è??.???();

      ^

      FunnyOne.java:7: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:7: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:7: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:7: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:7: illegal character: \65533

      ???è??.???();

      ^

      FunnyOne.java:9: illegal character: \65533

      private class è??

      ^

      FunnyOne.java:9: illegal character: \65533

      private class è??

      ^

      FunnyOne.java:12: illegal character: \65533

      private int ????

      ^

      FunnyOne.java:12: illegal character: \65533

      private int ????

      ^

      FunnyOne.java:12: illegal character: \65533

      private int ????

      ^

      FunnyOne.java:12: illegal character: \65533

      private int ????

      ^

      FunnyOne.java:13: illegal character: \65533

      private double ????;

      ^

      FunnyOne.java:13: illegal character: \65533

      private double ????;

      ^

      FunnyOne.java:13: illegal character: \65533

      private double ????;

      ^

      FunnyOne.java:13: illegal character: \65533

      private double ????;

      ^

      FunnyOne.java:14: illegal character: \65533

      private boolean ???

      ^

      FunnyOne.java:14: illegal character: \65533

      private boolean ???

      ^

      FunnyOne.java:14: illegal character: \65533

      private boolean ???

      ^

      FunnyOne.java:16: illegal character: \65533

      public è??

      ^

      FunnyOne.java:16: illegal character: \65533

      public è??

      ^

      FunnyOne.java:18: illegal character: \65533

      ???? = 25;

      ^

      FunnyOne.java:18: illegal character: \65533

      ???? = 25;

      ^

      FunnyOne.java:18: illegal character: \65533

      ???? = 25;

      ^

      FunnyOne.java:18: illegal character: \65533

      ???? = 25;

      ^

      FunnyOne.java:19: illegal character: \65533

      ???? = 160.0d;

      ^

      FunnyOne.java:19: illegal character: \65533

      ???? = 160.0d;

      ^

      FunnyOne.java:19: illegal character: \65533

      ???? = 160.0d;

      ^

      FunnyOne.java:19: illegal character: \65533

      ???? = 160.0d;

      ^

      FunnyOne.java:20: illegal character: \65533

      ??? = false;

      ^

      FunnyOne.java:20: illegal character: \65533

      ??? = false;

      ^

      FunnyOne.java:20: illegal character: \65533

      ??? = false;

      ^

      FunnyOne.java:22: illegal character: \65533

      private void ???()

      ^

      FunnyOne.java:22: illegal character: \65533

      private void ???()

      ^

      FunnyOne.java:24: illegal character: \65533

      ???(???);

      ^

      FunnyOne.java:24: illegal character: \65533

      ???(???);

      ^

      FunnyOne.java:26: illegal character: \65533

      private void ???(int ?)

      ^

      FunnyOne.java:26: illegal character: \65533

      private void ???(int ?)

      ^

      FunnyOne.java:30: illegal character: \65533

      private void ???()

      ^

      FunnyOne.java:30: illegal character: \65533

      private void ???()

      ^

      FunnyOne.java:41: '}' expected

      ^

      58 errors

      54 warnings

    • 家园 记得有人搞出过全中文的编程语言,所有保留的关键字都是中文。
    • 家园 【总结】在英文Windows下(sp2)运行中文Java程序大概有这么几个要点

      如果想要找到和中文Windows下同样的感觉,即

      1) 可以使用中文Class名称;

      2) 可以不带encoding参数直接Javac编译;

      3) 可以在Dos Console下打印出中文,

      我认为比较简单的方法是:

      1)修改Regional and Language Setting

      点看全图

      外链图片需谨慎,可能会被源头改

      点看全图

      外链图片需谨慎,可能会被源头改

      2) 保存Java文件为ANSI格式

      3) 编译运行

      点看全图

      外链图片需谨慎,可能会被源头改

      public class 疯狂程序

      {

      public 疯狂程序()

      {

      猫三 一个猫三 = new 猫三();

      一个猫三.灌水();

      一个猫三.板砖();

      }

      private class 猫三

      {

      private static final int 缺省水量 = 100;

      private int 年龄;

      private double 体重;

      private boolean 婚否;

      public 猫三()

      {

      年龄 = 25;

      体重 = 160.0d;

      婚否 = false;

      }

      private void 灌水()

      {

      灌水(缺省水量);

      }

      private void 灌水(int 水量)

      {

      System.out.println("灌水...水量为:" + 水量);

      }

      private void 板砖()

      {

      System.out.println("来块板砖...");

      }

      }

      public static void main(String[] args)

      {

      new 疯狂程序();

      }

      }

    • 家园 在FREEBSD,有点问题

      编译没有问题,但是编译完后发现没有class 文件产生?!

      我估计是freebsd 的console对UTF8的文件名支持不好,不知道各位有什么解决方法。

      关键词(Tags): #freebsd
      • 家园 FreeBSD对UTF-8编码的文件名支持的很好。问题应该出在Java编译器。

        我猜javac大概是试图生成UTF-16编码的文件名,结果失败了,于是什么也没有留下。

    • 家园 交作业喽。一点体会/一点建议

      我使用java1.4和英文版xp sp2,在控制台下可以直接显示汉字。现在实际上已经感觉不出来英文XP已经和中文版有什么区别了。

      public class 西西猫
      {
          public 西西猫()
          {
              猫三 一个猫三 = new 猫三();
              一个猫三.灌水();
              一个猫三.板砖();
          }
          private class 猫三
          {
              private static final int 缺省水量 = 100;
              private int 年龄;
              private double 体重;
              private boolean 婚否;
      
              public 猫三()
              {
                   年龄 = 25;
                   体重 = 160.0d;
                   婚否 = false;
              }
              private void 灌水()
              {
                  灌水(缺省水量);
              }
              private void 灌水(int 水量)
              {
                   System.out.println("Watering..." + 水量);
                   System.out.println("灌中文水..." + 水量);
              }
              private void 板砖()
              {
                  System.out.println("Throw Brick...");
                  System.out.println("看不懂洋文?看砖!");
              }
          }
      
          public static void main(String[] args)
          {
               new 西西猫();
          }
      }

      一个麻烦的咚咚:

      西西河的水印,也就是[cchere.com 西西河 Highway],隐藏在程序段里面,复制粘贴的时候必须逐一删除掉,不然会添乱。

      • 家园 编译有什么参数吗?能不能给个截图?

        我用的是Java 1.5,不知道有没有这方面的问题。我在DOS Console下,中文java class编译以后文件名字都不正确(如??.class),所以没有办法运行。

        中文Windows下没有这些问题,Souce code甚至不需要用Unicode来保存。

        • 家园 我一开始也遇到了这个问题,后来大概解决了

          我一开始也遇到了这个问题.开了DOS WINDOW,还无法打印中文

          后来,在REGIONAL Setting里,选了ADVANCED,Language for Non-Unicode 设成中文,才可以.

          但是假如此时文件SAVE成UNICODE,COMPILER又有许多抱怨.要SAVE

          成一般ANSI文件才行

        • 家园 没有参数,截图见内

          点看全图

          我开始用JCrestor2.5,也有你说的无法建立中文文件名的问题,我知道那是JCrestor版本太老的缘故,它对中文兼容不好。

          当我采用TxetPad4.7.1来编辑和保存中文文件时,一切都好了。TxetPad4.7.1内置了Compile Java和Run Java Application菜单,可以呼叫javac和java。

          为了验证一下,我特意又试验了一下自己在英文的Console下编译和运行,结果很满意。

          关键词(Tags): #java
分页树展主题 · 全看首页 上页
/ 2
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河