Minecraft(我的世界)中文论坛

标题: ---===从零基础开始,到精通插件===---#1

作者: berry64    时间: 2014-12-11 21:43
标题: ---===从零基础开始,到精通插件===---#1
本帖最后由 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?的栗子,而且这个栗子是实际存在的,不像“栗子”只是一个概念。这时候你手里的栗子就是实例,而“栗子”本身就是这个类。你制造你手里的这个栗子的时候你创建了一个“栗子”这个概念的一个实体。



回到目录




旧版本




作者: simοn3000    时间: 2014-12-11 21:45
LZ刷版的节奏
作者: simοn3000    时间: 2014-12-11 21:48
你这么教会出问题的
变量都不搞清就开始教System.out
作者: simοn3000    时间: 2014-12-11 21:49
berry64 发表于 2014-12-11 21:49
变量?
我就教个
System.out.print和.println

虽然不写插件
但是你教java相关不先教变量后期有些麻烦吧
作者: berry64    时间: 2014-12-11 21:49
simοn3000 发表于 2014-12-11 21:48
你这么教会出问题的
变量都不搞清就开始教System.out

变量?
我就教个
System.out.print和.println
作者: berry64    时间: 2014-12-11 21:51
simοn3000 发表于 2014-12-11 21:49
虽然不写插件
但是你教java相关不先教变量后期有些麻烦吧

下一篇变量A
作者: simοn3000    时间: 2014-12-11 21:53
berry64 发表于 2014-12-11 21:51
下一篇变量A

lol
变量什么最好玩了

作者: berry64    时间: 2014-12-11 21:54
练习册 发表于 2014-12-11 21:55
这种的教程,你要屠版吗?
【@淘宝

不要屠版.....但是不然怎么发啊...
作者: 练习册    时间: 2014-12-11 21:55
这种的教程,你要屠版吗?
@淘宝
作者: berry64    时间: 2014-12-11 21:56
练习册 发表于 2014-12-11 21:55
这种的教程,你要屠版吗?
【@淘宝

待会再写变量的东西
作者: wkyyzhb    时间: 2014-12-11 22:00
一开始不从txt教起真的好吗......
作者: berry64    时间: 2014-12-11 22:03
wkyyzhb 发表于 2014-12-11 22:00
一开始不从txt教起真的好吗......

有必要从txt起教吗?还麻烦
作者: wkyyzhb    时间: 2014-12-11 22:05
berry64 发表于 2014-12-11 22:03
有必要从txt起教吗?还麻烦

我想说,对于新手,不必要使用那些便捷的东西,先学会用txt写出来一步一步的艰辛,等真正有所体味的时候再去用那些工具
作者: berry64    时间: 2014-12-11 22:07
wkyyzhb 发表于 2014-12-11 22:05
我想说,对于新手,不必要使用那些便捷的东西,先学会用txt写出来一步一步的艰辛,等真正有所体味的时候 ...

txt很麻烦的,还要设置什么环境变量,怕他们搞不懂....虽然说源语言都一样,不过不用IDE那里错了都不知道啊
作者: I_am_fudge    时间: 2014-12-12 16:19
楼主什么都没说,就说了个;
顺序有问题,很多新手搞不懂的
作者: 子不语    时间: 2014-12-12 23:37
{:10_512:}
作者: hzy4619666    时间: 2014-12-13 00:24
楼主讲的教程,跟我学校里带回来的书讲的步骤暂时相同《Java程序设计 项目化教程》
一边跟楼主学,一边看书学(当初上课时候全看小说了,果然,兴趣才是最好的老师)
作者: 48856209    时间: 2015-1-3 13:30
这样教人会出问题的
final int ; int ; double; 都还没搞懂就开始复制粘贴了。。
作者: Top2001_1    时间: 2015-1-7 20:19
喂喂喂 汉化出错了 害得我不能在Eclipse打字了! 这么屌啊! 求一个最新版的
作者: Top2001_1    时间: 2015-1-7 20:36
果然lz用(default package)而不用helloworld java数据库,刚刚错误就是因为创建了错误的数据库 这下修复了
作者: berry64    时间: 2015-1-7 20:39
Top2001_1 发表于 2015-1-7 20:19
喂喂喂 汉化出错了 害得我不能在Eclipse打字了! 这么屌啊! 求一个最新版的 ...

这个可能的,我也不知道为什么,我也有这个问题, 所以你知道我为什么换回英文版了吧.........
作者: berry64    时间: 2015-1-7 20:39
Top2001_1 发表于 2015-1-7 20:36
果然lz用(default package)而不用helloworld java数据库,刚刚错误就是因为创建了错误的数据库 这下修复了 ...

新手的话......还是用(default package)好点,不用加东西
作者: Top2001_1    时间: 2015-1-7 21:16
berry64 发表于 2015-1-7 20:39
这个可能的,我也不知道为什么,我也有这个问题, 所以你知道我为什么换回英文版了吧......... ...

我是直接把汉化文件全删了才变回英文的 也就是你说的前提那个汉化Eclipse 那些要安装汉化插件全删了 目前汉化有两个大BUG

1.BUG:前面我说过不能打字
2.BUG-显示欢迎界面错误:当我打开Eclipse后=_=欢迎界面已Err
作者: Top2001_1    时间: 2015-1-7 21:17
berry64 发表于 2015-1-7 20:39
这个可能的,我也不知道为什么,我也有这个问题, 所以你知道我为什么换回英文版了吧......... ...

我是直接把汉化文件全删了才变回英文的 也就是你说的前提那个汉化Eclipse 那些要安装汉化插件全删了 目前汉化有两个大BUG

1.BUG:前面我说过不能打字
2.BUG-显示欢迎界面错误:当我打开Eclipse后=_=欢迎界面已Er
作者: Top2001_1    时间: 2015-1-7 21:17
berry64 发表于 2015-1-7 20:39
这个可能的,我也不知道为什么,我也有这个问题, 所以你知道我为什么换回英文版了吧......... ...

我是直接把汉化文件全删了才变回英文的 也就是你说的前提那个汉化Eclipse 那些要安装汉化插件全删了 目前汉化有两个大BUG

1.BUG:前面我说过不能打字
2.BUG-显示欢迎界面错误:当我打开Eclipse后=_=欢迎界面已Error了
作者: 15615790291    时间: 2015-1-9 19:37
你确定什么都没学过的新手,,,能学会?


而且会以点的都会这个= =,,,也没用、。。。。{:10_492:}

搭建环境也不教= ={:10_492:}



大触加好友~~~,,,想研究一下我的世界的java插件mod的开发~~~。。。还在学校学{:10_512:}{:10_512:}
作者: 宇来自RR网    时间: 2015-2-28 13:14
看完了,基本看懂了XD按照楼主的要求回复一下{:10_492:}
作者: kqn2    时间: 2015-3-5 15:27
略不懂........
作者: yc453005841    时间: 2015-3-22 17:00
看完 用完 回复完
作者: 623723024    时间: 2015-3-26 17:06
么么哒么么哒
作者: 1527802264    时间: 2015-3-31 00:19
啊啊啊我只能用中文打字输入啊啊啊啊
作者: lichi2050    时间: 2015-3-31 03:12
这种教程不是基础吧。 先教真正的基础好么、、、
作者: eva12345    时间: 2015-5-27 23:38
喔喔,大爱啊,太谢谢楼主了
作者: eva12345    时间: 2015-5-27 23:39
我终于有点基础了
作者: eva12345    时间: 2015-5-27 23:40
为什么打不了字啊,换了输入法也不行
作者: berry64    时间: 2015-5-28 17:05
eva12345 发表于 2015-5-27 23:40
为什么打不了字啊,换了输入法也不行

可能是bug了,建议不使用中文,重装eclipse不要汉化即可

作者: eva12345    时间: 2015-5-30 14:55
谢谢,可以用了【继续保持回复】
作者: 4072    时间: 2015-5-30 15:31
simοn3000 发表于 2014-12-11 21:45
LZ刷版的节奏

乐见simon君
作者: Eng_xue    时间: 2015-5-31 18:27
还是看不懂= =
作者: berry64    时间: 2015-5-31 18:28
Eng_xue 发表于 2015-5-31 18:27
还是看不懂= =

怎么不懂了, 第0章看过吗?
不懂的问我
作者: Nesy    时间: 2015-7-1 21:12
支持版主,我一直在学,!
作者: guqu    时间: 2015-7-3 14:26
这个软件哪里下?应该不是Minecraft用的JAVA吧- -是JAVAC么
作者: wyl879593    时间: 2015-7-13 14:57
HelloWorld在哪 ,我是小白之下的小白
作者: EsHappyさん    时间: 2015-7-25 12:58
虽然看不懂,但还是很努力在看
作者: 天马司空    时间: 2015-8-8 15:18
新建是ALT+SHIFT+N吧...{:10_493:}
作者: .|°夨.忆ヽ    时间: 2015-8-9 16:00
支持楼主~
作者: 低调的奶茶    时间: 2015-8-10 09:02
为啥只教这一点啊,还有,这个什么用?LZ说明下!
作者: hongziqqq    时间: 2015-8-12 20:52
和c有点像
作者: 党靖皓1234    时间: 2015-8-18 12:40
berry64 发表于 2014-12-11 22:07
txt很麻烦的,还要设置什么环境变量,怕他们搞不懂....虽然说源语言都一样,不过不用IDE那里错了都不知道啊 ...

环境变量神马的都做过了...不想用软件只想用txt...
作者: 3颗猫饼干    时间: 2015-9-25 17:30
很基础,很棒的教程
作者: 吞噬神    时间: 2015-9-25 18:26
版主全是英文呀看不懂求中文
作者: RothBlink    时间: 2015-9-25 21:15
楼主只到去哪里下mcp吗?
作者: XL_111    时间: 2015-11-22 18:34
呵呵,别人没装JDK和Eclipse,你就直接教了?
发福利了!
JDK网址:www.oracle.com/index.html
Eclipse网址:www.eclipse.org
建议使用汉化版语言包:www.eclipse.org/babel
别问我是谁,我叫雷锋
作者: berry64    时间: 2015-11-23 16:57
XL_111 发表于 2015-11-22 18:34
呵呵,别人没装JDK和Eclipse,你就直接教了?
发福利了!
JDK网址:www.oracle.com/index.html

你洒币吗
自己去看
第零章
作者: dv123321    时间: 2015-12-18 16:12
翻译插件是不是也是使用这套工具?
作者: 小宝23    时间: 2015-12-18 21:54
表示看不懂....
作者: Ray009    时间: 2016-1-3 23:07
支持斑竹
作者: 点就开始给    时间: 2016-1-7 18:02
不错的教程  啪啪啪
作者: 风吹蛋蛋凉    时间: 2016-1-8 19:52
wkyyzhb 发表于 2014-12-11 22:05
我想说,对于新手,不必要使用那些便捷的东西,先学会用txt写出来一步一步的艰辛,等真正有所体味的时候 ...

我同意,况且你教别人的时候没告诉别人你用什么软件编的,还有一些杂七杂八的基础东西也没说,这叫零基础?
作者: 风吹蛋蛋凉    时间: 2016-1-8 19:57
berry64 发表于 2014-12-11 22:07
txt很麻烦的,还要设置什么环境变量,怕他们搞不懂....虽然说源语言都一样,不过不用IDE那里错了都不知道啊 ...

这点东西都不懂还想编插件?最开始还是让他们用记事本一个一个写吧,这样好点
作者: liu9520    时间: 2016-1-9 00:40
发的规划符合
作者: mchh2015    时间: 2016-1-19 21:23
回复一下
作者: 935262316    时间: 2016-1-25 16:37
支持教程,写得好,但是不详细
作者: 935262316    时间: 2016-1-25 18:42
我成功了,但是出现了一个问题就是:我不小心把大写和小写混淆了,最后就成功了,感谢楼主的教程,希望继续更新

作者: 1441151179    时间: 2016-2-1 12:52
楼主,我按照你的把代码复制进去,显示错误啊
描述        资源        路径        位置        类型
公用类型 HelloWorld 必须在它自己的文件中定义        helloworld.java        /helloworld/src/helloworld        第 1 行        Java 问题

描述        资源        路径        位置        类型
声明的包“”与期望的包“helloworld”不匹配        helloworld.java        /helloworld/src/helloworld        第 1 行        Java 问题



作者: QAwinsir    时间: 2016-2-5 11:03
最后一步骤不懂2333
作者: 歪氏    时间: 2016-2-7 18:06
不错!{:10_492:}
作者: 贯穿者    时间: 2016-2-12 15:41
我不懂。。。。
作者: 935262316    时间: 2016-2-16 17:57
谢谢楼主的教程
希望更新第10章教程
作者: ss3144827801    时间: 2016-2-26 22:01
垃圾东西
作者: Mccraft-pepsi    时间: 2016-6-30 21:04
请问LZ
在手动输入这些代码的时候应该怎么空格呢?
作者: 1344641274    时间: 2016-7-23 20:30
楼主我照着你的代码复制过去,然后启动上面说:找不到或无法加载主类 helloworld.Varible,这是怎么回事?
作者: stoneking    时间: 2016-7-23 20:30
至少先打好基础,那样就可以看懂高级Java知识了
作者: YoungMC    时间: 2016-7-23 21:29
楼主可以的  竟然在这里找到了JAVA编译
作者: UltraPanda    时间: 2016-8-8 17:41
我中文弄不了= =
作者: 1971911052    时间: 2016-9-16 08:57
谢谢大大的教程
作者: 49256463    时间: 2016-10-29 23:49
楼主好棒!!!
作者: dudududu2004    时间: 2016-11-15 13:01
哪编出的插件会怎么样呢?
作者: hejingye    时间: 2017-1-3 22:47
谢谢楼主,本新手学会了
作者: Mc_bule    时间: 2017-1-4 13:08
身为一个0基础的新手,表示没看明白
作者: thr256466421    时间: 2017-2-3 16:45
表示图挂了。。。
作者: GG灬小弟弟    时间: 2017-2-15 14:45
楼主这是基本中的基本了
import java.util.*;
public class 名字{
       public static void main(String[] args){
                  Random rd=new Ramdom();
                  for(int i=0;i<=100;i++){
                          i=rd.NextInt();
                          System.out.println(i);
                  }
      }
}
作者: axinyue    时间: 2017-2-24 15:44
I_am_fudge 发表于 2014-12-12 16:19
楼主什么都没说,就说了个;
顺序有问题,很多新手搞不懂的

支持+1————————————————
作者: 呆萌的龙言    时间: 2017-2-25 00:29
从入门到放弃 买了书还没看
作者: YPXxiaoK    时间: 2017-2-25 01:19
我家里还有一本书呢XD
作者: dbjdbj    时间: 2017-3-12 09:32
好贴,赞一个
作者: 1010444826    时间: 2017-7-27 15:29
图片一直在加载看不到啊...
作者: q3575935261    时间: 2017-7-28 08:42
Exception in thread "main" java.lang.Error: 无法解析的编译问题:          at helloworld.helloworld.main(helloworld.java:2)
作者: 457725806    时间: 2017-9-2 17:24
MCBBS有你更精彩~
作者: 11231983    时间: 2017-9-2 19:39
System.out.print也是,唯一的区别就是println后面会换到下一行,而print后面的东西会跟着他走你可以试试用System.out.print()现在还是一样的,不过如果你再复制一个就会发现了

这句话没有看懂
再就是楼主没有告诉我们这段代码的意思
作者: 新人是怪物    时间: 2017-9-3 12:16
66666666666666666
作者: xiaonaoL    时间: 2017-9-3 23:12
66666666666666
作者: 院长大人啪    时间: 2017-9-12 13:54
死在汉化上了。。
作者: 院长大人啪    时间: 2017-9-12 14:02
第一遍木有成功。。
作者: xiaoman952777    时间: 2018-1-1 14:16
你说了是给那些了零基础的人看的,不先让他们简单了解一下java就直接把代码让他们复制下来,这样是没用的,你最好是先讲一下java,不要上来就直接弄这些,如果嫌打字麻烦,可以直接从别的网站教程上复制下来,再加几张图片,让他们弄明白java是什么东西,他的原理是什么,再结合这些,会好很多,
作者: Blank°    时间: 2018-1-23 21:56
System.out.print也是,唯一的区别就是println后面会换到下一行,而print后面的东西会跟着他走你可以试试用System.out.print()现在还是一样的,不过如果你再复制一个就会发现了
这一句话的print与println我不懂是什么意思
作者: fengSAO_Ehere    时间: 2018-1-31 15:25
package求教程,没设置package,显示编译错误,重装也没用
作者: fengSAO_Ehere    时间: 2018-1-31 15:30
最新版本的package不能默认
作者: Tds...    时间: 2018-2-28 01:01
public class HelloWorld{
        public static void main(String[] args){
                System.out.println("HelloWorld");
        }
}
我弄这个输出 错误: 找不到或无法加载主类 HelloWorld
怎么回事???
作者: 白马马    时间: 2018-3-1 12:42
刚开始学习, 有点蒙  但教程真的很棒!