JAVA学习笔记0x01
2019-03-18 本文已影响0人
CaesarH000
第一个程序
创建目录,新建文本文件Hello.java

使用记事本打开,输入以下代码
//package com.aaa.corejava.day00;
public class Hello{ //必须和文件名一致,包括大小写,否则报错
public static void main(String[] args){
System.out.println("Hello World!");
}
}
保存后关闭文件,打开命令行(cmd),切换到目录下

javac 编译.java文件

编译成功之后,打开目录,可以看到在目录下出现Hello.class文件

然后在命令行中输入 java Hello 运行文件

进阶
在原目录下新建“src”和“bin”目录,其中src下放源代码,bin目录下放编译后的文件。将Hello.java文件移入src目录下

将package前的“//”删除去掉注释。命令行切换到src目录,编译Java文件,此时需要增加参数“-d ”和编译之后存放的目录(bin)

编译完成后,看一下bin里面的结构

可以看到程序自动将按结构包建立起来了
命令行切换到bin目录下,java+全名,运行文件

细节
编译时(javac),后面跟着的是源代码文件名
运行时(java)后面跟着类名
- 类名必须和文件名一模一样,包括大小写,否则程序报错。
- java代码需要写在一个类里面,必须写在大括号内
- 我们将
public static void main(String[] args){}
称为方法
方法
void 表示方法的返回类型为空;main为方法名,是程序的入口 - 每次修改源码后需要重新编译
- 包(package)提供java类的分类,相当于目录,相关的类声明在同一个包中。
- 包名的习惯:com.aaa.bbb.ccc
aaa代表公司的域名
bbb代表项目中的模块名称
ccc代表包的功能或者时间 - 如果写了包, 编译时需要加参数“-d”,后面需要跟编译后的文件和包存放的目录。
- Java运行时后面跟的应该是“包名.类名”
进阶2
在src中新建一个Test.java文本,输入以下代码
package com.aaa.corejava.day00;
public class Test{
public static int i=2;
}
再建一个Test2.java文本,输入以下代码
package day00;
public class Test2{
public static int i=3;
}
修改Hello.java文本,加入一行代码,全部内容如下
package com.aaa.corejava.day00;
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
int i = 1;
System.out.println(i);
System.out.println(Test.i);
System.out.println(Test2.i);
}
}
重新编译,报错

原因:Hello与Test2编译之后不在同一包下,需要加上包名,修改Hello.java如下
package com.aaa.corejava.day00;
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
int i = 1;
System.out.println(i);
System.out.println(Test.i);
System.out.println(day00.Test2.i);
}
}
import
如果一个类用到其他包里面的类,使用import [包名.类名];
上述例子可修改如下
package com.aaa.corejava.day00;
import day00.Test2;
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
int i = 1;
System.out.println(i);
System.out.println(Test.i);
System.out.println(Test2.i);
}
}
其他
- import 后可写[包名.*]代表引入包下的所有类。
- import 可以写多行。
- 在同一包下或者java.lang包下的类不需要写import