楼主: omencathay

[精华] Think in java读书笔记

[复制链接]
论坛徽章:
33
2011新春纪念徽章
日期:2011-01-25 15:41:012012新春纪念徽章
日期:2012-02-13 15:11:52ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14兰博基尼
日期:2013-11-04 12:55:50马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:52
131#
 楼主| 发表于 2004-4-2 20:59 | 只看该作者
.
下面进行我们第一个经典的java程序开发吧,那就是HelloWorld

在c:盘创建一个excise的目录,以后我们的练习文件就存放在这个目录下;
打开你电脑上的editplus或者记事本程序:
把这段代码敲进去


  1. //HelloWorld.java
  2. class HelloWorld
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 System.out.println("Hello World! Now let's begin!");
  7.         }
  8. }
复制代码


存盘进入cmd界面,进入c:\excise目录,这个不用说了吧
键入 javac HelloWorld.java
回车
然后,键入 java HelloWorld
看到结果了吧。
下面我们分析一下这段代码:
class HelloWorld {……} 定义一个HelloWorld的类,后面的花括号就封装了你想要完成得东东,这就是java的封装,嘿嘿;
实际上上面的完整写法应该是class HelloWorld extends Objects{……}这Object是哪里来的,Object 是java里最顶级的父类,在jdk的lib目录下,任何类的创建都是继承他而来,是不过java默认状态下,不用写他而已,你好象看到了什么是继承吧,extends关键字的作用就是表明继承自哪个父类,我们看到为什么classpath环境变量的设置如此重要吧,找不到java需要调用的类,当然会报错。
我们看到在封装的内容里,有一个static静态方法(或者称为函数,叫什么都一样的)main(),这个是一个java程序的入口,在启动任何一个java程序的时候,必须有一个public static void main() 的方法;
public的作用就是谁都可以访问,就像我们需要时就可以随便跑到哪个公厕去解决问题一样。
Void表示这个方法没有返回值,其实编译时java在方法的末尾会自动给你加一个return的。
那么main(String  []  args)中间的参数是什么呢?修改以下程序如下:

  1. //HelloWorld.java
  2. class HelloWorld
  3. {
  4.         static String  a ;
  5.         public static void main(String[] args)
  6.         {   
  7.                 a=args[0];
  8.                 System.out.println("Hello World! Now let's begin!");
  9.                 System.out.println(a);
  10.         }
  11. }

复制代码

编译
运行java HelloWorld test

看看有什么结果?自己动脑筋思考一下,为什么?如果想不出为什么,以后也会明白D.

好了,你可以找一些代码方面的参考书进行练习了


后记:java作为一种跨平台的语言,编译一次,到处运行,这其中classpath功不可没,很多人学习了很长时间java代码,调用类的时候仍然会出现找不到类的错误,就是没搞明白classpath的作用。

使用道具 举报

回复
论坛徽章:
33
2011新春纪念徽章
日期:2011-01-25 15:41:012012新春纪念徽章
日期:2012-02-13 15:11:52ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14兰博基尼
日期:2013-11-04 12:55:50马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:52
132#
 楼主| 发表于 2004-4-2 21:02 | 只看该作者
几个工具editplus

editplus.rar

1.22 MB, 下载次数: 177

使用道具 举报

回复
论坛徽章:
33
2011新春纪念徽章
日期:2011-01-25 15:41:012012新春纪念徽章
日期:2012-02-13 15:11:52ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14兰博基尼
日期:2013-11-04 12:55:50马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:52
133#
 楼主| 发表于 2004-4-2 21:03 | 只看该作者
java反编译小工具

decafe39.rar

621.22 KB, 下载次数: 199

使用道具 举报

回复
论坛徽章:
0
134#
发表于 2004-4-3 14:23 | 只看该作者
多谢谢omencathay,言简意赅,茅塞顿开....
看君两帖子胜读二周书.

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
135#
发表于 2004-4-6 08:56 | 只看该作者
To cazyIT. What is the difference between the following?
String wgf="asdfg";
String gfw=new String("asdfg";
Why didn't you tell us? I do not think they have much difference.
Please, thanks.

使用道具 举报

回复
论坛徽章:
33
2011新春纪念徽章
日期:2011-01-25 15:41:012012新春纪念徽章
日期:2012-02-13 15:11:52ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14兰博基尼
日期:2013-11-04 12:55:50马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:52
136#
 楼主| 发表于 2004-4-6 09:13 | 只看该作者
最初由 RobinOuyang 发布
[B]To cazyIT. What is the difference between the following?
String wgf="asdfg";
String gfw=new String("asdfg";
Why didn't you tell us? I do not think they have much difference.
Please, thanks. [/B]


两种定义字符串变量的方式,应该没有什么不同

new 的作用在于新创建一个对象实例

使用道具 举报

回复
论坛徽章:
0
137#
发表于 2004-4-8 10:21 | 只看该作者

关于内部类问题

在CHAP7,我调试书上的一个带有方法的内部类的程序,但是没有通过,看看是什么原因。
//:Prace.java
//Nesting a class within a method

public class Prace{
public Destination dest(String s){
   class PDestination implements Destination{
        private String Label;
        private PDestination(String WhereTo){
        Label=WhereTo;       
        }
        public String readLine(){ return Label;} ;
   }
return new PDestination(s);
}
public static void main(String[] args){
Prace p=new Prace();
Destination d=p.dest("测试";       
}
}///:~

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
138#
发表于 2004-4-8 15:33 | 只看该作者
implements Destination,
可是你的Destination类呢?

使用道具 举报

回复
论坛徽章:
0
139#
发表于 2004-4-9 09:19 | 只看该作者
最初由 RobinOuyang 发布
[B]implements Destination,
可是你的Destination类呢? [/B]

我忘记了声明接口了,还有在下面的代码中内部类实现接口中的方法。全部代码为:
interface Destination{
        String readLine();
}///:~

public class Prace14{
public Destination dest(String s){
   class PDestination
           implements Destination{//内部类实现接口
        private String Label;
        private PDestination(String WhereTo){
        Label=WhereTo;       
        }
   public String readLine(){ return Label;} //实现接口中的方法
   }
return new PDestination(s);
}
public static void main(String[] args){
Prace14 p=new Prace14();
Destination d=p.dest("测试";       
}
}///:~

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
140#
发表于 2004-4-9 10:08 | 只看该作者
怎么没有通过,我都可以呀!我试了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表