java HelloWorld中H和W为什么一定要大写

java HelloWorld中H和W为什么一定要大写,第1张

java 是运行java程序的意思,你可以在你的java安装路径中找到javaexe这个文件,你编写的程序在编译后就是能javaexe这个文件运行的,但是你要运行你写的程序就要找到那个文件,如果你的程序文件名与你java 后写的名不一样,javaexe将会找不到运行文件。

再就是public类的类名就是包含这个类的文件的文件名,这是规定。当然你可以全弄成小写的,只要统一就可以,但是java代码规范就是类名大写,多个单词的话就要把每个单词首字母大写。

NDK:AndroidNDK是在SDK前面又加上了“原生”二字,即NativeDevelopmentKit,因此又被Google称为“NDK”。

NDK全称:NativeDevelopmentKit。

NDK是一系列工具的集合。

NDK提供了一系列的工具,帮助开发者快速开发C(或C)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。

NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。

NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

其实:

NDK就是能够方便快捷开发so文件的工具。JNI的过程比较复杂,生成so需要大量 *** 作,而NDK就是简化了这个过程。

AndroidSDK:

SDK(softwaredevelopmentkit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、 *** 作系统等建立应用软件的开发工具的集合。因此!AndroidSDk指的既是Android专属的软件开发工具包

JNI:

JavaNativeInterface(JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在Java虚拟机(VM)内部运行的Java代码能够与用其它编程语言(如C、C和汇编语言)编写的应用程序和库进行交互 *** 作

当然一般需要进行如下 *** 作流程:

1)编写java程序:这里以HelloWorld为例。为了实现在java代码中调用c函数printf。

代码1:

classHelloWorld{

publicnativevoid();

static{

SystemloadLibrary("hello");

}

publicstaticvoidmain(String[]args){

newHelloWorld()();

}

}

声明native方法:如果你想将一个方法做为一个本地方法的话,那么你就必须声明改方法为native的,并且不能实现。

Load动态库:SystemloadLibrary("hello");

这里一般是以static块进行加载的。同时需要注意的是SystemloadLibrary()的参数“hello”是动态库的名字。

2)编译

javacHelloWorldjava

3)生成扩展名为h的头文件javah

JNIEXPORTvoidJNICALLJava_HelloWorld_(JNIEnv,jobject);

这个h文件相当于我们在java里面的接口,这里声明了一个Java_HelloWorld_(JNIEnv,jobject)方法,然后在我们的本地方法里面实现这个方法,也就是说我们在编写C/C程序的时候所使用的方法名必须和这里的一致)。

4)编写本地方法实现和由javah命令生成的头文件里面声明的方法名相同的方法

代码2:

#include"jnih"

#include"HelloWorldh"

#includeotherheaders

JNIEXPORTvoidJNICALLJava_HelloWorld_(JNIEnvenv,jobjectobj)

{

printf("Helloworld!/n");

return;

}

注意代码2中的第1行,需要将jnih(该文件可以在%JAVA_HOME%/include文件夹下面找到)文件引入,因为在程序中的JNIEnv、jobject等类型都是在该头文件中定义的;另外在第2行需要将HelloWorldh头文件引入。然后保存为c就ok了。

5)生成动态库

这里以在Windows中为例,需要生成dll文件。在保存c文件夹下面,使用VC的编译器cl成。cl-I%java_home%/include-I%java_home%/include/win32-LDc-Fehellodll注意:生成的dll文件名在选项-Fe后面配置,这里是hello,因为在HelloWorldjava文件中我们loadLibary的时候使用的名字是hello。

另外需要将-I%java_home%/include-I%java_home%/include/win32参数加上,因为在第四步里面编写本地方法的时候引入了jnih文件。

1972年,贝尔实验室成员Brain Kernighan撰写的Introduction to the Language B 中最早出现将“Hello”和“World”一起使用的程序,代码如下:

main(){

extern a,b,c;

putchar(a);putchar(b);putchar(c);putchar('!n');

}

a'hell';

b'o,w';

c'orld';

这个程序中的“hello,world ”全部都是小写字母,中间有一个逗号,包括一个换行符。这个短语被拆分为多段来输出,是因为在B语言中,字符常量被限制为只能使用4个ASCII字符。

1974年,贝尔实验室的Brain Kernighan写的实验室内部备忘录Programming in C: A Tutorial 中包含了该程序的第一个C语言的版本:

main( ) {

printf("hello, world");

}

另一种说法是:1978年,Brain Kernighan在他和Dennis Ritchie合作撰写的C语言圣经“The C Programming Language”中,延用了“hello,world”句式,作为开篇第一个程序。在这个程序里,输出的”hello,world”全部是小写,没有感叹号,逗号后有一空格。虽然之后几乎没能流传下来这个最初的格式,但从此用hello world向世界打招呼成为惯例。

#include <stdioh>

int main()

{

print ("hello,world");

return 0;

}

”hello,world“,在编程的起点,向这一世界的第一声问候,简单而理性;后来,这条路上,既出现了程序猿(媛),也出现了改变世界的大牛和大神。

你的问题只是初步问题,后面会有更多的问题,都把你解决了一下:

首先你的问题的答案如下:

gdrawString("热烈欢迎进入JAVA世界!", 25, 25);

看上去是不是和你写的差不多?!其实只是把你的中文下的逗号和分号,改成了英文下的逗号和分号,这两个符号在程序世界里是很不样的,切记!另外 String 的S 要大写!

其他问题:

1 void paint(Graphics g)

如果要重写这个 paint 函数,必须把 public 带上:

public void pain(Graphics g)

2。public static void main(String args[])

{paint();}

肯定时跑不通的,在类里静态函数不能调用非静态函数

纵观你的程序,程序书写格式不怎么好。

还好看懂了你的程序意图,帮你写了一个,后续 javac 编译通过以后,你可以 appletviewer 运行,也可以 java AppletHelloWorld (这个本来也是你后一步要遇到的问题的)运行:

import javaawtGraphics;

import javaappletApplet;

import javaxswing;

public class AppletHelloWorld extends Applet {

public static void main(String args[]) {

JFrame frame = new JFrame("AppletTest");

framegetContentPane()add(new AppletHelloWorld());

framesetSize(400, 300);

framesetVisible(true);

framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

}

public void paint(Graphics g) {

gdrawString("热烈欢迎进入JAVA世界!", 25, 25);

}

}

还不明白,可以密我

选择一个编辑器

尽管我是一个顽固的Notepad狂 但这次我不建议用它编辑源码 原因是你正在与真正的编程语言打交道 使用Notepad编辑源码编译时可能产生大量的错误信息行(C++程序员知道我在说什么 )

你有几种选择 可以重新配置你信任的老式Visual C++ 使它能够和C#源文件一起工作 第二种选择是使用新的Visual Studio 第三 你可以用任何第三方程序编辑器 最好要支持行数 色彩编码 工具集成和良好的搜索功能 CodeWright就是其中一个例子 当然 在所提到的编辑器中 没有一个对创建C#程序来说是必要的 用Notepad肯定可以编辑 但是 如果你考虑到要编写更大的项目 最好还是忍痛割爱吧

Hello World 代码

讨论编辑器有点离题 让我们把话题转回到一个非常出名的小应用程序 这个最短的C#版本应用程序见清单 把它存起来 文件名为 helloworld cs 以便使你能按照说明 完成诸如编译应用程序等其它余下来的步骤

清单 最简单的 Hello World 程序

class HelloWorld

{

public static void Main()

{

System Console WriteLine( Hello World )

}

}

在C#中 代码块(语句组)由大括弧({和})所括住 所以 甚至你以前没有C++的经验 你也可以说出Main()方法就是HelloWorld 类语句的一部分 因为类被括在所定义的大括弧中 C#应用程序(可执行)的入口点就是 static Main 方法 它必须包含在一个类中 仅有一个类能使用该标志定义 除非你告诉编译器它应使用哪一个 Main 方法(否侧 会产生一个编译错误) 和C++相比 Main的第一个字母是大写的M 而不是你曾经使用过的小写字母 在这个方法中 你的程序开始并结束 方法中可以调用其它方法——如这个例子中 用于输出文本——或者创建对象并激活该方法

正如你所看到的 Main方法返回一个void类型 public static void Main()

尽管看到这些语句时 C++程序员肯定会觉得似曾相识 但是其他程序员并不如此 首先 public 的访问标志告诉我们这个方法可以被任何程序访问 这是它被调用的必要条件 其次 static 意味着没有先创建类的实例也可以调用方法——你所要做的就是用类名调用方法 HelloWorld Main() 但是 我不赞成在Main方法中执行这行代码 递归会导致堆栈溢出

另一重要的方面是返回类型 对于方法Main 可选择void (意味着根本就没有返回值) 或用int 为整型结果(应用程序返回的错误级别) 因此 两种可能的Main方法为

public static void Main()

public static int Main()

C++程序员会同样知道后面我要提到的——可以传给应用程序的命令行参数数组 如

public static void Main(string[] args)

我现在并不想详细地说明如何访问参数 但我想事先给C++程序员一个警告 和C++相比 应用程序路径不是这个数组的一部分 仅仅那些参数包含在这个数组中

在对Main方法并不简短的介绍之后 让我们把注意力集中到唯一真正的代码行——这行代码在屏幕上显示 Hello Wold System Console WriteLine( Hello World )

假如不是由于有了System 大家会马上猜到WriteLine是Console 对象的一个静态方法 那么System代表什么呢?

它是包含Console对象的名字空间(范围) 实际上并不是每次都在Console对象前加上名字空间的前缀 你可以象清单 所示范的那样 在应用程序中引入名字空间

清单 在应用程序中引入名字空间

using System

class HelloWorld

{

public static void Main()

{

Console WriteLine( Hello World )

}

}

所有你要做的就是给System名字空间加一个using指令 在这之后 不再需要规定名字空间 就可以使用它们的方法和属性了 NGWS 框架体系中有很多的名字空间 我只对巨大的名字空间池中的少数几个对象进行探讨 但在第八章 用C#写组件 将介绍为你的对象创建自己的名字空间

编译应用程序

由于NGWS Runtime支持所有的编译器(VB C++和C#) 你不必买一个单独的开发工具用来把应用程序编译成IL(中间语言) 但是 如果你从没有用过命令行编译器编译过应用程序(仅懂得编译名 而没有熟记) 它还是你的首要选择

打开命令提示符并切换到存 helloworld cs 的目录 敲入以下命令

csc helloworld cs

helloworld cs 被编译并链接成hellworld exe 因为源码没有错误(那当然!) C#编译器没有出错提示 在整个编译过程没有丝毫停顿

现在你已经准备好运行第一个真正用C#编写的应用程序 简单地在命令行上敲入helloworld 输出结果为 Hello World

在继续往下介绍之前 我想稍为想象一下第一个应用程序和一个编译器开关的使用

csc /out hello exe helloworld cs

这个开关告诉编译器输出文件命名为hello exe 虽然这不是什么绝招 但它是这本书中用到的未来编译器的基本功

输入和输出

到目前为止 我仅仅演示了把简单的常量字符串输出到屏幕 尽管这本书只介绍了C#编程的概念而不介绍用户接口编程 但我需要让你迅速学会简单的屏幕输入和输出方法——相应于C的scanf 和 printf 或者C++的cin 和cout 我不能提供VB相应的函数 因为屏幕访问不是该核心语言的一部分

你只需要能够读用户的输入并提示一些信息给用户 清单 说明如何读一个用户请求的名字输入 并显示一条已定制好的 Hello 信息

Listing 从控制台读输入信息

using System

class InputOutput

{

public static void Main()

{

Console Write( Please enter your name )

string strName = Console ReadLine()

Console WriteLine( Hello + strName)

}

}

第 行使用Console对象的一个新方法用于提示文本信息给用户 它就是Write方法 它与WriteLine不同的地方在于它输出时不换行 我使用这种方法以便用户可以在信息提示的同一行输入名字 在用户输入他的名字后(并按回车键) ReadLine 方法读入了一个字符串变量 名字字符串连接到常量字符串 Hello 并用我们早已熟悉的WriteLine方法显示出来

你几乎已学完了NGWS框架必要的输入和输出功能 但是 你还需要为用户显示多个值 为用户写一个格式串 清单 展示一个例子

清单 使用不同的输出方法

using System

class InputOutput

{

public static void Main()

{

Console Write( Please enter your name )

string strName = Console ReadLine()

Console WriteLine( Hello { } strName)

}

}

第 行包含了使用格式串的Console WriteLine语句 格式串例子如下

Hello { }

{ }代替WriteLine方法的参数表中紧随格式串后的第一个变量 你可以用该技术格式化超过三个变量

Console WriteLine( Hello { } { } from { }

strFirstname strLastname strCity)

当然 并不仅限于只使用字符串变量 你可以使用任何类型 这些类型在后面的第四章 C#类型 中有讨论

添加注释

当写代码时 你应为代码写注释条文 解释实现的内容 变更史等 尽管你注释中提供的信息(如果有的话)是给你写的 但是你还是必须遵守写C#注释的方法 清单 显示采用的两种不同的方式

清单 给你的代码添加注释

using System

class HelloWorld

{

public static void Main()

{

// 这是单行注释

/ 这种注释

跨越多行 /

Console WriteLine(/ Hello World /)

}

}

// 符号用于单行注释 你可以用 // 注释当前所在行 或是跟在一个代码语句的后面

int nMyVar = // 胡说八道所有在 // 后面的被认为是一条注释 所以 你可以同样用它们来注释一整行或一行源代码的部分 这种注释方式同C++中介绍的相似

如果你的注释跨越多行 必须使用 / / 的字符组合 这种方式在C中有效 除了单行注释外 这种方式在C++和C#中还同样有效 因C/C++和C#都使用这种多行注释方式 所以它们也使用相同的终结符 请看下列代码行

/ Console WriteLine( Hello World ) /

我使用 / / 简单地注释一整行 现在我假定这一行是很长代码的一部分 而且我决定要暂时禁用一个程序块

/……

/ Console WriteLine( Hello World ) /

……/

这个结构所存在的问题为 Hello World 那一行后面的 / 终止了始于第一行的 / 的注释 余下的代码对编译器有效 你将看到一些有趣的出错信息 至少 最后的 / 被标志为归属错误 我只不过想提醒一下 让你了解这种错误

小结

在这一章中 你创建 编译并执行了第一个C#应用程序 著名的 Hello World 程序 我用这个短短的应用程序给你介绍有关Main方法 它是一个应用程序的入口点 也是出口点 这个方法可以没有返回值或返回一个整数错误级别 如果你的应用程序用参数调用 你可以(但不必要)读出并使用它们

lishixinzhi/Article/program/net/201311/13447

以上就是关于java HelloWorld中H和W为什么一定要大写全部的内容,包括:java HelloWorld中H和W为什么一定要大写、AndroidNDK开发简介NDK和SDK以及JNI有什么关系_安卓ndk是干嘛的、为什么学习一门新的编程语言写的第一个程序被称为"Hello,World等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9676085.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存