分享
 
 
 

我的Thinking in Java学习笔记(2)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

打造第一个java程序

名称的可视性

名称问题有些人觉得不是什么大问题,我开始也觉得那不是个什么大问题,但是当你有一天写了很多的类时,你就发现,名称其实真的很重要,假如你有这么一个类,他需要调用其他几个类, 当这几个被类名相同时,问题就出现了,那么

怎么区分他们,并且使他们的名称不冲突呢?毕竟我们不可能把每个声明过的类的名字一一记住,以便在下次声声明其他名称时,加以区分。这个时候我们就需要使用包(package)了,一个包就是一个命名空间。命名空间的使用规则是:反转internet域名,例如,我的blog是blog.csdn.com/maoerzuozuo你可以在类的开头使用package maoerzuozuo.com.csdn.blog,这样就好了~每个包都是一个独一无二的命名空间。需要注意一点:当使用package说明一个包时,该包的层次结构必须和文件目录的结构相同!就想c:\maoerzuozuo\com\csdn\blog

使用其他组件

包定义了之后一定要使用的,怎么使用呢?在文件的开头使用import关键字,假如我要导入我开发的一个叫hello.class组件,我只要import maoerzuozuo.com.csdn.blog.hello;就导入了我所创建的包,当然你也可以偷懒,用import maoerzuozuo.com.csdn.blog.*;

导入该文件夹里所有的包(也许你有的包根本用不上),但是这样有个弊端,就是在编译的速度要比直接指明包的编译速度要慢。

关键字static(静态的)

一个class只有在你使用new来产生对象时,他的函数才能被外界使用,但是也有2中情况是用上面的方法无法实现的。

1、不管产生多少的对象或没有对象产生对象时,一些特定的数据存储只有一份;

2、类中的某个函数不想和对象绑定在一起,既我不想产生对象,但是我还想用类中的一个函数;

一般情况下, 你要使用一个非静态(non-static)的成员的话,必须先产生一个对象使用对象来调用这个数据或函数,所以你必须知道这个函数/数据属于哪个对象才行,因为static是不用产生对象就可以使用的,所以在static的函数中不能直接调用non-static的函数或变量。

解决1、把static关键字摆在成员变量或函数定义之前,就可以使他们变为静态的。

class StaticDemo

{

static int i=888;

public static void main(String args[])

{

StaticDemo sd1=new StaticDemo();

StaticDemo sd2=new StaticDemo();

System.out.println(sd1.i);//888

System.out.println(sd2.i);//888

StaticDemo.i++;

System.out.println(sd1.i);//889

System.out.println(sd2.i);//889

}

}

现在即使你产生n个StaticDemo对象,但是i只有原始的一份,不管你是sd1.i还是sd2.i,其实就是同一个i,全部引用自这个StaticDemo.i,所以,只要改变StaticDemo.i内存储的数据,这些sd1和sd2的i都会改变,因为他们的i的句柄全部指向的是StaticDemo.i这一个内存空间,就相当于,有一个人在a公司工作,还在b公司兼职,而他假如死掉了,则同时影响2家公司,就是这个意思,同样的道理也适用于static的函数

解决2、要想不产生对象就能使用函数,这样需要在函数名前加上static

class StaticDemo

{

public static void show(String s)

{

System.out.println(s);

}

public static void main(String args[])

{

show("one");//调用方法1

StaticDemo.show("two");//调用方法2

new StaticDemo().show("three");//调用方法3

}

}

对于调用方法1,其实他隐藏了一个关键子,就是this,他的完整形式应当是this.show("one"),这个this的用法以后会学到

对于调用方法2,使用的是className.method()的形式,这个也就是static的函数调用的典型形式,non-static的函数是不能使用这样的方法调用的!

对于调用方法3,这个方法就是我们调用函数的一般方法,创建对象,由对象调用函数,这个方法对于static和non-static是同样适用的。某个成员变量在声明为static的时候,其建立的方式有很大的变化,但是static的函数变化不大,static函数最大的一点用处就是可以在不建立对象的情况下,调用函数,就像我们经常见到的main函数一样。

你的第一个java程序

java程序默认的回把java.lang下的包导入到你所创建的文件中,我们没有必要再使用import来导入。一个public的class的名称一定要和文件名称是一样的,并且一个class里面只允许有一个public的class,附则程序是编译不过去的。如果你要运行这个类的话,那么这个类中一定要有一个main()函数,他的固定格式为public static void main(String args[]),其中,public表示这是一个公开给外界使用的函数,并且是个static的不允许有返回值,而传入main()的参数必须是个String对象数组,即使你从来没有过,这个args[]的string数组可以存储cmd的参数。

编译与执行

使用javac 文件名.java来编译java文件,使用java className来执行className这个类,这里要注意2点,一个是当你使用java命令执行一个类时,这个类必须要有main函数;第二个className不一定等于文件名,一个java文件中假如有public类,那么这个类名必须要和文件名相同,其他情况你可以随你自己的意思起名字

注释及内嵌文档

//注释单行 /*.......*/注释多行,多行注释内不能嵌套多行注释。

寓文档于注释

javadoc命令可以将内嵌在程序代码中的文档提取出来,生成html格式的文件,使用浏览器就可以查看。

语法

这个部分我就跳过去了,有兴趣的朋友自己看看,很简单的

编码风格

类名在编写的时候,应当第一个字母大写,如果名称是由多个单词组成,则把这些个单词并在一起写,并且把他们的第一个字母大写 例如 public class MaoErZuoZuo

本章总结:

这一章总算ko了,呵呵~其实这章讲的不难,大家就是要仔细看书,好好体会tij的精髓

本章习题解答

这章的习题总体不难,惟独有一个题是运用了后面学习的知识,我们就把他作为难题来对付好了

"撰写某个程序,使他能够接受由命令行传入的3个引数,为此,你需要对代表命令行引数的string数组进行索引"

public class Solve

{

public static void main(String args[])

{

System.out.println(args[0]);

System.out.println(args[1]);

System.out.println(args[2]);

}

}

这个程序可以接受3个引数,并且把他显示出来,有的人会问了:我们怎么把引数传递进来呢。大家在运行时,要在java Solve后面加个空格,在加三个引数,每个使用空格隔开,例如 java Solve aaa bbb ccc这样程序就会接受到这3个引数,并且把他显示。当你输入引数和接受引数的数量不符时候,会抱ArrayIndexOutOfBoundsException的错误,希望大家注意!

大家如果在学习的过程中,有什么问题,可以这样联系我

E-mail molmd@163.net /163.com QQ:31349283 我们可以共同学习进步!

欢迎访问我的blog,http://blog.csdn.com/maoerzuozuo 里面有更多学习内容!

未完待续...............

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有