前言
我的 java 基础学习,跟的是韩顺平的 java 课程~
本篇文章涵盖视频 0 ~ 215 集中 java 与 C++ 不同的知识点~
1. 第一个 java 程序
我的环境是:java8,Sublime
第一个 java 程序:
public class test { public static void main(String[] args) { System.out.println("hello java!\n"); } }
public class test 表示的是 test 是一个公有的类,
public static void main(String[] args) 表示的是一个主方法,程序的入口
System.out.println("hello java!\n"); 表示输出 hello java! 到屏幕上
很开心,第一个 java 程序成功启动!
2. java 开发的注意事项
1. 源文件中最多只能有一个 public 类,其他类的个数不限制;
2. public 类的类名必须和文件名相同;
3. 可以将 main 方法写在非 public 类中,然后指定运行非 public 类,
这样进入的就是非 public 类的 main 方法,举个例子:
public class test { public static void main(String[] args) { System.out.println("hello java!"); } } class dog { public static void main(String[] args) { System.out.println("hello dog~"); } }
我们可以从 dog 类的主方法进入函数:
3. java 的注释
java 的注释跟 C++ 的一模一样。
但是 java 有一个文档注释:
/** * 我的第一个 java 程序 * * * */
输入:/**
之后,就会有自动补齐的语法。
4. javadoc 标签
比如说我们这样一段代码:
/** * @author xl * @version 1.0 * 我的第一个 java 程序 */ // public 类 public class test { public static void main(String[] args) { System.out.println("hello java!"); } } class dog { public static void main(String[] args) { System.out.println("hello dog~"); } }
在文档注释里面的 @author,@version 就是java的文档标签,
我们使用 javadoc 执行就能生成一个文档,
输入这样的指令:
javadoc -d F:\my test.java
-d 后面加的是文件路径:
这样就证明成功了,我们该文件去看看:
我们可以看到他生成的文档,点开 index:
我们就能看到他生成的文档。
5. java 的变量
java 的 int double char 和 C++ 相同,而字符串类型是 String。
boolean 是 java 的 bool 类型。(注意 java 的 char 是两个字节)
另外补充一点 '+' 的使用,java 的加号如果是两个字符串,可以进行拼接操作。
6. java 的 String 和 基本类型转换
只需要把基本类型 + " " 就可以转换成 String 类型。
比如说这段代码:
class string { public static void main(String[] args) { int a = 1000; int b = 2222; String s1 = a + ""; System.out.println(s1 + b + ""); } }
这段代码输出的就是:
String 也可以转成基本的数据类型,不过这就需要用到一些 api 的接口,
这里我就懒得学了。
7. java 的输入
来看代码:
// 需要包含 Scanner 包 import java.util.Scanner; public class Input { public static void main(String[] args) { // 用 new 创建一个 Scanner 对象 Scanner myScanner = new Scanner(System.in); System.out.println("请输入你的名字:"); String name = myScanner.next(); System.out.println("请输入你的年龄:"); int age = myScanner.nextInt(); System.out.println(name + "" + " " + age + ""); } }
输出:
8. java 的数组
java 的数组有两种:
静态数组:
public class ArrayTest { public static void main(String[] args) { // 静态数组 int[] arr = {1, 2, 3, 4, 5}; for(int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
动态数组:
Scanner myScanner = new Scanner(System.in); // 动态数组 int[] arrM = new int[5]; for(int i = 0; i < arrM.length; i++) { arrM[i] = myScanner.nextInt(); System.out.println(arrM[i]); }
二维数组也是类似的方式。
9. java 的方法
来看例子:
class Person { int _age; public void speak() { System.out.println("你好。"); } } class Method { public static void main(String[] args) { Person p = new Person(); p.speak(); } }
这里要注意的是,java 的对象不同于 C++,
java 的对象一定要 new 出来才能使用。
然后就是注意 public 写在方法的返回类型前面。
10. java 方法的传参
这里需要注意的是,java 传基本类型的时候,
形参的改变不影响实参,方法内修改不会影响方法外,
但是!!!
java 传引用类型(数组)或者传对象的时候,
传过去的是地址,所以在方法内修改会影响到方法外面。
然后这里又有一个需要注意的场景:
class Person { int _age; public void speak() { System.out.println("你好。"); } } class Do { public void mod(Person p) { p = null; } } class Method { public static void main(String[] args) { Person p = new Person(); Do d = new Do(); d.mod(p); p.speak(); } }
我们在 Do 类里吧 Person 类对象置空了,但是,
我们在主方法还是可以直接使用 p 对象,这是为什么呢?
因为,mod 函数使用的是一个独立的栈区,所以 p 指向位置的改变不会影响 主方法里的。
但是修改对象里面的成员,是可以改变的。
数组也是类似的:
class Do { public void mod(int[] arr) { arr = null; } } class Method { public static void main(String[] args) { int[] arr = new int[1]; arr[0] = 10; Do d = new Do(); d.mod(arr); System.out.println(arr[0]); } }
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果感到有所收获的话可以给博主点一个赞哦。
如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~