程序框架分析
目录
序:“劝退”的HelloWorld
程序框架分析
什么是类?
public class HelloWorld
什么是方法?
public static void main
Sting[] args
什么是语句?
System.out.println("Hello world!");
如何描述HelloWorld这个类?
序:“劝退”的HelloWorld
想要学习Java,就一定避不过第一个Java程序(HelloWorld)。Java的HelloWorld的程序往往让很多初学者一头雾水。
第一个Java程序(HelloWorld)示例
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
看完这一段“冗长”的代码,不禁让人心生退意——一个“简单”HelloWord程序怎么就这么长?public又是啥?class又是啥?static是啥?更别提这个“莫名其妙的”args和长长的一串打印语句了。
确实,跟其他的语言相比,Java的HelloWord程序也算是十分地长的了。谁说Java的语法不难的吗,怎么一个最简单的HelloWord就这么长了?站出来,我保证不打死他(狗头)。
实际上,这些看似冗长的代码里,一句废话都没有,甚至可以说是“干货满满”了,这与Java本身的语言特性是离不开的。请听我慢慢分析 第一个Java程序(HelloWorld)。
程序框架分析
什么是类?
class
类,顾名思义,就是抽象。这么讲是很难理解的,什么是抽象呢?抽象是实际上是人们为了认识事物,提取出事物的共通点组成的观念本身。实际上,一项事物,只有两种可能,你能用感官感知的,和不能用感官感知的。那些不能用感官直接感知的,都是人们提取出事物的共通点组成的观念本身,也叫抽象。例如爱,是某些人的人对待某些事物的是所展示的共同特质。
也许你已经发现了怎么去辨别实际与抽象,任何没有实体的东西,你无法直接看见、听见、闻到,摸到的,无法直接用感官感知的,那就是抽象。那么那什么不是抽象呢?任何有实体的食物,例如你家的某只宠物狗,比如太阳,又比如你眼前的屏幕。
也许你会说了,狗也是一个类啊,我可以直接用感官感觉到他。这就是我必须补充的地方了。实际上,这是一个容易混淆的点,这里实际上我们所说的“狗”是不一样的语义。狗实际上有两个语义,既可以表示你家的狗,也可以表示任何符合狗定义的生物,而你显然不可能用感官感知世界上所有的狗。而我这里讲的,或者说可以定义为是一个“类”的,是第二个语义。
讲了这么多,其实就想说一句,任何没有实体的东西理论上都可以定义为一个类。也许你会有所疑问,既然任何没有实体的东西理论上都可以定义为一个类,那也太泛了吧,那我究竟该定义什么类呢?别忘了,编程的目的就是为了解决问题的,所以你只需定义的可以更好地解决你问题的类。
讲了这么多,这跟HelloWorld程序有什么关系呢?实际上,这是你理解HelloWorld程序的第一个必要的知识点。
public class HelloWorld
public class HelloWold
实际上,这是在定义一个类。格式为:访问限定修饰符public+class关键字+类名HelloWorld。很显然,HelloWorld没有实体。
访问限定修饰符public。这涉及到Java的封装特性,public的中文意思为:公共的。
如果一个类被这个public修饰了,意味着这个类的使用并不会受到限制,你可以在任何地方使用这个类,前提是要导包,包的概念就暂且不提了。还有一个值得注意的是,被public修饰的类必须与当前的文件名相同,在当前的.java文件里有且只有一个。目前只需知道这些足以初步理解public。
类名HelloWorld。有些没接触过Java的人可能会觉得这个书写方式很奇怪,为什么要这么写呢?实际上,这是一种约定的代码风格,使用在Java类的命名中,称为“大驼峰命名法。
大驼峰命名规则:第一个单词首字母大写,其他单词首字母也大写
写法如:MyFirstName
什么是方法?
之前讲过类是一种抽象,那么方法想表达的是,这个类可以能做什么,或者这个类的功能。你之所以创建一个类,就是为了让他直接地或间接地实现某些功能。如果你曾学过C语言,你可以类比C语言的函数。
public static void main
public static void main
public:之前已经讲过public修饰类时的作用,这里只需类推,这意味着你可以在任何地方使用这个方法。
static:意味着这个方法不依赖于任何对象的。什么是对象,就是类的实例化。例如把狗当成一个类的话,你家的那只狗就是这个的对象。而被static修饰的方法,意味着在调用这个方法时候你不需要有任何该类的对象就可以调用了。
void:方法的返回值的类型,这里的void指的是此方法不需要返回值。
main:程序的入口,有且只有一个。有一点值得注意,不一定要定义在public类中。
Sting[] args
String[] args
这是运行时命令参数,像理解运行时命令参数就要理解,Java程序的编译和运行的过程。
什么是语句?
在方法内部,写下的你需要这个方法执行的具体操作。
System.out.println("Hello world!");
System.out.println("Hello World!");
HelloWorld程序里main方法中的具体操作,效果是在屏幕进行一行打印括号内的指定内容。这里的指定打印的内容是“Hello world!”,所以就会在屏幕上打印。也许你会疑问这个打印语句为什么这么长。实际上这是Java最常用的打印语句了,暂且无需知道原因,会用且知道具体效果即可。
以上是.java文件、类、方法、语句之间的关系。.java文件的概念会在Java文件的编译和运行中说明。
如何描述HelloWorld这个类?
之前讲了类和方法、语句等概念,也许你现在有一个疑问。就一般的思维习惯来说,人们很容易理解把狗、台灯等有明显实物的实体当成一个类。如果把线等几何概念之类的当成一个类,也还不难理解,虽然并不存在完美的线(一般定义上线是没有粗度的),但还是能找都符合基本特征的实例的。这些的类的共同点是可以找到实体或者接近满足要求的实体。
有一些类显然是匪夷所思的,令人“摸不着头脑”的,例如之前提到的“爱”。你不能找到一个所谓的实体的“爱”,从这角度来看,把“爱”当一个类实在是令人费解的。
但有几个点可以帮助你理解和描述几乎所有的类,而不至于让你对这些类产生困惑。
1.只要没有实体的东西理论都可以定义为一个类。
2.类有时候都没实体 但这不影响使用(参考“爱”)
3.static修饰的方法不需要这个类的任何实例
这三点这个可以帮助你很好的理解HelloWorld以及任何没有实例的类。
你根本不需要考虑HelloWorld这个类的实体是什么样的,你只要把自己想象成一个造物主(这就是程序员在编译器里的实际身份),对编译器说:“我要定义一个类叫HelloWorld的类,这个类根本没实体,实际上这个类的实体存不存在我根本不关心。我只要这个类可以的其中一个功能(就是方法),他不需要任何实例就能调用,只是充当程序的入口,并在屏幕上打印一句Hello World。”
补充:main方法必须用static修饰的原因
你是否还记得static的含义?就是不需要任何该类的实例对象就可以使用的方法。你可能也还记得main是有且只有一个,且是程序的入口。这里还需要补充的是,Java中的类的实例对象,只能在方法里建立。这里就有了一个矛盾,就是main方法是程序入口,如果main方法的调用需要实例对对象就是不合理的,因为你很明显没法在main调用main方法前创建一个实例对象。这就是main方法必须用static修饰的原因。
申明:本人是Java初学者,以上仅仅代表个人的理解,若出现偏差或遗漏在所难免。请各位大佬务必多多互相交流学习经验。
最后
以上就是纯情小熊猫最近收集整理的关于如何深入理解第一个Java程序(HelloWorld)?序:“劝退”的HelloWorld程序框架分析如何描述HelloWorld这个类?的全部内容,更多相关如何深入理解第一个Java程序(HelloWorld)?序:“劝退”内容请搜索靠谱客的其他文章。
发表评论 取消回复