本帖最后由 berry64 于 2021-1-4 02:44 编辑




第一章:我的第一个java!


创建一个新工程
学习一个编程语言,没有HelloWorld怎么行呢?
等等,你没有装eclipse? 请先看
第零章
于是乎,打开Eclipse,按下 Ctrl+Alt+N创建一个新工程,之后创建工程都可以使用这个快捷键
当然,你也可以使用右键→新建→工程来创建

之后,我们右键src->新建->类(也可以使用屏幕上方工具栏里的"c"图标)


创建好之后我们可以看到编辑框里出现了点东西,别慌,这是你以后经常要接触的东西,还是早点习惯吧


Java语法
类是什么?Java中的一个类可以想成一个.java文件
(之后会讲到一个.java多个类,暂时先这么说吧)
这个类就是我们写代码的地方,
(什么,你想不写代码就写插件?葡萄你删号吧 Alt+F4或者Ctrl+W了解一下)


这时候我们的代码编辑器里面应该是这样的代码:
  1. public class HelloWorld{
  2. }
复制代码
不要方,目前这个类是空的,而里面的代码是要靠开发者输入进去的 这不是废话嘛

我们在两个大括号中间加入以下代码:
  1. public static void main(String[] args){
  2. }
复制代码

这时候全部代码应该是这样的

好的,现在你可能是一脸懵逼,而且被本教程逼迫输入了一些奇奇怪怪的东西,
还是那句话:不要方,慢慢来解释
首先我们看到出现了两次public
, 这个代表了单词之后的方法/类是公用的,所有其他类都可以调用这个方法,相对的,这里还有以下的可以写
单词中文直译功能
public公用所有其他类都可以使用
private私有只有这个java文件内才可以使用
protected受保护的只有这个类的子类才可以使用

至于子类是什么,这个我们之后再讨论,请先继续看下去
class关键词代表了这是一个类,而它之后的HelloWorld则注明了这个类的名称。
"{"和"}"代表了一个段落的开始和结尾,比如class HelloWorld之后的"{"代表了这个类里面的内容,而文件最后的“}”表明了这个内容的结尾,通过这些段落我们可以跟整齐地规划和编写我们的代码


这个类的"{"和"}"之间写了我们的方法
每个方法可以有自己独特的功能来减少重复的代码
举个粒子:


public static void main(String[] args){}
static代表了这个方法是静态的,也就是说这个方法在程序加载的时候就会加载而不需要实例 (实例是什么之后会讲)如果不写代表并不是静态的,所以需要实例才能调用。

void
代表了这个方法的返回值,也可以理解为方法结束的时候会对使用它的东西有什么类型回应,而这里的void则代表了这个方法并不会有任何回应,只是会达成一件事而已。

main
这个位置是方法的名称,这里虽然可以写成任何东西,但是还是建议写成和内容有关的名字方便其他人理解。
而这里的main则是Java规定的主方法,也就是说java在运行你这个文件的时候只认识这个public static void main, 所以一般这里都会写成程序的启动。

main之后的括号内写的是传入这个方法的一些数据,这里的String[]代表了一组String(具体String是什么往后看),而这个args则是你给这个数据的名字。
这里的String[]是java语法规定的,只有接受这个数据类型的main才会被Java运行时使用,而名字则可以随意取,反正在这里还用不到


至此,你应该对我们为什么这么写有了点了解,现在我们在方法里加上这样的代码:
  1. System.out.println("HelloWorld");
复制代码

这段代码的作用是使用了System.out里面的println方法,并且传入了"HelloWorld"数据,这个方法的功能是在控制台输出一行文字并换行,而输出的文字就是你传入的数据。至此:所有代码

这里如果你点击 运行
你会发现控制台出现了你在双引号内输入的字样


你可能发现了System.out里面还有其他的方法,比如print, 可以自己去试试看效果




一个类可以包含很多个方法,而一个java文件只能包含一个公用类, 也就是说目前我们有一个类:
HelloWorld
而这个类里有1个方法: main
所以目前分解可以理解成这样:
类HelloWorld {
   方法 main  (参数args){ /*这里省略了main里的代码*/ }
}

那么同理如果我们要再写一个方法


public class HelloWorld { 类开始
  public static void main {/*继续省略*/}
  
  public void MyFunction() {
        /*这里就是我们新写的方法里的代码了*/
  }      //这里方法结束
}    //到这里类结束


可以看到大括号小括号为我们很好的规划了这个类的结构,允许我们一眼就看出来
这是一个类,类里有两个方法, 而各个方法的代码又被区分开了


实例&类&class文件
如果你直接用压缩软件打开一个jar会发现里面的文件夹里有各种各样的.class文件,而每一个class文件在java里面代表了一个类。
这些class是由程序猿所写的.java文件编译而来的
编译是什么:


这些class文件可以理解成储存bytecode字节码的地方,而java在运行时会把这些字节码加载到内存
关于内存是什么:


而这些加载到内存的class(就是类)中的方法如果不是静态(static)的话,暂时还不会被加载到内存,所以在这个状态只是文件被缓存(储存到内存)了。
可是如果只是文件被缓存了我们要怎么使用它呢?别急,往后看。

一个类可以有多个实例,这样可能不好理解,我举个栗子:
比如你有好多个不同的物体:栗子,每一个栗子都有自己的甜度和大小,但是它仍然是个栗子,所以这时候你可以说我有一个类,而这个类是栗子,但是栗子有各种各样的栗子,而你手里的是甜度50%大小3cm?的栗子,而且这个栗子是实际存在的,不像“栗子”只是一个概念。这时候你手里的栗子就是实例,而“栗子”本身就是这个类。你制造你手里的这个栗子的时候你创建了一个“栗子”这个概念的一个实体。







旧版本