- Java
Java 教程
- 2022-11-3 13:38:22 @
0.前言
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。Java 可运行于多个平台,如 Windows, MacOS及其他多种 UNIX 版本的系统。本教程通过简单的实例将让大家更好的了解 Java 编程语言。移动操作系统 Android 大部分的代码采用 Java 编程语言编程。个人觉得Java的基础语法十分简单,三天就能学得会。
1.Java基础
1.1 Java的基本语法
大小写敏感:Java 是大小写敏感的,这就意味着标识符Hello与hello是不同的。
类:类似public class
框架.
类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
方法:类似函数的框架.
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
1.2 Java的框架
1.2.1 Java准备工作:代码框架
以下是HelloJava.java的基础准备工作:
import java.io.*;
import java.util.Scanner;
public class HelloJava {
public static void main(String[] args)throws IOException{
Scanner scan = new Scanner(System.in);
}
}
1.2.2 Java框架详解(在程序中的作用)
import java.io.*;
import java.util.Scanner;
解析:这两个语句名为import语句
,是打开头文件的方法。
public class HelloJava
解析:程序主体
,此处的HelloJava可以替换成任意类名,但必须和文件名统一。
public static void main(String[] args)
解析:程序的入口
,此处的String[] args 也可以写成 String args[]。
public
:访问修饰符
stutic
:关键字
void
:返回值类型
String[] args
解析:String是程序的字符串
,args是程序的数组
部分没有讲到的语法会在后续补充。
2.Java变量
2.0 为什么要单独提到Java变量?
因为Java变量十分复杂。
2.1 数据类型
2.1.1 int
int 的存放类型是整型。 示例如下:
int a = 2;
2.1.2 double
double 的存放类型是浮点型。 示例如下:
double b = 3.14;
2.1.3 char
char 的存放类型是字符型。 示例如下:
char c = 'J';
2.1.3 String
String 的存放类型是字符串型。 示例如下:
String s1 = "Java"; // String 直接创建
String s2 = "Java"; // String 直接创建
String s3 = s1; // 相同引用
String s4 = new String("Java"); // String 对象创建
String s5 = new String("Java"); // String 对象创建
caution: String 首字母须大写。
2.1.4 byte
byte 的存放类型是字节型。 示例如下:
byte e = 11;
caution: byte与int的区别 1、byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。 2、int是整型数据类型,是有符号型的,占用4个字节,大小范围为:-2147483648到2147483647。
注意:Java变量在没有赋初值时不支持自增或自减。
2.2 变量类型
2.2.1 局部变量
Main.java
源代码:
public class Main {
public static void main(String[] args) throws IOException {
int a;
}
}
此处的a称为Main.java
中main()
函数的局部变量
.
局部变量
:在方法/构造方法/语句块中的变量.
2.2.2 成员变量
Main.java
源代码:
public class Main {
int a;
public static void main(String[] args) throws IOException {
}
}
此处的a称为Add
方法中的成员变量
.
成员变量
:定义在类中,方法体之外,创建对象时实例化.
2.2.3 类变量
Main.java
源代码:
public class Main {
static int a;
public static void main(String[] args) throws IOException {
}
}
此处的a称为类变量
.
类变量
:定义在类中,方法体之外。
2.2.4 caution成员变量与类变量的区别
类变量前需要添加静态修饰符static
,而成员变量不需要.、
2.3 new语句
这是一个简单的语法点.在声明字符串时可以用到.示例如下:
String str = new String("Java");
这时,String类变量str的值就变成了Java
3.Java头文件
3.1 头文件中的引用
Main.java
import java.io.*;
import java.util.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
;
}
}
在Java中,头文件的应用格式:"import 文件名;",示例如下:
import java.io.*;
3.2 头文件的分类
3.2.1 全部引用
Main.java
import java.io.*;
这是引用java.io的全部文件,全部引用需要在分号前加上.*
.
3.2.2 局部引用
Main.java
import java.util.Scanner;
这条语句是引用java.util中的Scanner文件,后面不需要加.*
.
3.3 头文件的时间复杂度
java头文件的时间复杂度非常高,再加上语言性能根本没有C++之类的语言高,所以能不加头文件就尽量不要加.
3.4 如何在不加头文件的情况下使用相应功能
Main.java
public class Main {
public static void main(java.lang.String[] args) throws java.io.IOException {
java.util.Scanner scan = new java.util.Scanner(System.in);
}
}
在这段代码中,throws java.io.IOException
原本可以写成throws IOException
,但因为没有加上Scanner头文件,所以在语句中需要写出相应头文件的路径。java.util.Scanner scan
和java.util.Scanner(System.in)
也是如此。
注意:不要怕忘记头文件路径,大多数编译器都有自动补全功能。
4.Java的输入与输出
4.1Java的输出
Main.java
public class Main {
public static void main(java.lang.String[] args) throws java.io.IOException {
System.out.println("Hello println!");
System.out.print("This is the first print!");
System.out.print("This is the second print!");
}
}
输出结果:
Hello println!
This is the first print!This is the second print!
在Main.java
中,出现了两种不同的函数,分别是println
和print
函数,对比一下两个函数,我们会发现一下几点:
- 相同点
- 他们都在
System
派生类中 - 他们都在
out
类中
- 不同点
println
函数输出后会在末尾添加一个换行,所以System.out.println("Sth");
等价于System.out.print("Sth\n")
.print
函数输出后则不会主动添加换行
4.2 Java的输入
4.2.1 头文件
Java的输入和输出截然不同,不加路径的情况下需要加上以下头文件:
import java.util.Scanner;
注意:无论在任何情况下,都不建议加上头文件,直接写出路径即可
4.2.2 Scanner类与System.in
Main.java
public class Main {
public static void main(java.lang.String[] args) throws java.io.IOException {
java.util.Scanner scan = new java.util.Scanner(System.in);
scan.close();
}
}
这里的scan
变量就是Scanner类中的变量,并且用我们前面讲到的new
语句声明.
这里的System.in是Scanner()函数的一种打开方式,也是最稳定的一种.
scan.close
就是让scan停止读取键盘。
4.2.3 输入方式
Main.java
public class Main {
public static void main(java.lang.String[] args) throws java.io.IOException {
java.util.Scanner scan = new java.util.Scanner(System.in);
if(scan.hasNextInt()) {
int a = scan.nextInt();
}
int b = scan.nextInt();
scan.close();
}
}
这里的a和b是两种不同的读取输入方式,涉及到了2个函数
hasNextInt
:判断如果scan已经输入完毕,返回true,否则返回false.
NextInt
:scan的输入值.
在竞赛编程中,推荐使用第二种(b).
4.2.4 更多读取函数
一下是Java所有Scanner类读取函数:
.hasNextInt()
nextInt() //整型
.hasNextDouble()
nextDouble() //双精度浮点型
.hasNextFloat()
nextFloat() //单精度浮点型
.hasNext() .hasNextLine()
.next() .nextLine() //字符串型
注意:.nextLine() .hasNextLine()
可以读取\n和空格,但是.next() .hasNextLine()
不行。
下次更新:5.Java的if-else语句
3 comments
-
linbaicheng2022 LV 7 @ 2022-12-5 22:50:00
orz,收藏了,谢谢大佬
-
2022-12-1 12:41:39@
orz,收藏了,谢谢大佬
-
2022-11-3 18:34:57@
orz,收藏了,谢谢大佬
- 1