基本语法
-
类名:对于所有的类来说,类名的首字母应该大写。
如果类名由多个单词组成,那么每个单词的首字母应该大写,例如 MyFirstClass 。
-
方法名:所有的方法名都应该以小写字母开头。
如果方法名含有若干单词,则后面的每个单词首字母大写。
-
源文件名:源文件名必须和类名相同。
当保存文件的时候,应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
-
主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
这里的”方法“就是C系列中的”函数“!
数据类型
Java含有八种基本类型(6+1+1)
六种数字类型(四个整数型byte、short、int、long,两个浮点型double、float),一种字符类型char,一种布尔型boolean
包
Java 提供包机制,用于区别类名的命名空间——防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
-
把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
-
包采用树形目录的存储方式。包可以避免名字冲突。
同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。
-
包限定了访问权限,拥有包访问权限的类才能访问某个包中的类
Math 类
包含了用于基本数学运算的方法。类似于C系列中的<math.h>或
Math 的方法都被定义为 static 形式,可在主函数中直接调用 Math 类方法。
几个典型方法:floor,round 和 ceil
round() 表示四舍五入
ceil() 返回大于等于( >= )给定参数的的最小整数
floor() 返回小于等于(<=)给定参数的最大整数
标准输入输出
数据输出
通过系统类两种方式实现:
System.out.println() // 输出信息后追加一个换行
System.out.print() //输出之后不追加换行
例:
public class ABC{
public static void main(String [] args){
System.out.print("输出的内容"+变量); //输出后没有换行
System.out.println("输出的内容"+变量); //输出后有换行
}
}
括号内无任何判断符号,默认为真
输出比较表达式,在控制台显示为真/假
数据输入
通过Scanner类获取输入的数据。
一)引入Scanner类
在类前使用import语句让编译器找到Scanner类
import java.util.Scanner
二)定义类对象
Scanner 对象名=new Scanner(System.in)
三)调用对象的成员函数并赋值给变量(接收数据)
数据类型 变量名=对象名.next方法
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串
next方法接收字符串
在输入有效字符之后,next()方法将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。及:next方法不能得到带空格的字符串。
// next方式接收字符串
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("next接收:");
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
scan.close();
}
}
两个判断字符的方法
hasNext()方法会判断接下来是否有非空字符.如果有,则返回true,否则返回false
hasNextLine() 方法会根据行匹配模式去判断接下来是否有一行(包括空行),如果有,则返回true,否则返回false
nextLine方式接收字符串
- 以Enter为结束符,即:nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("nextLine方式接收:");
String str2 = scan.nextLine();
System.out.println("输入的数据为:" + str2);
scan.close();
}
}
nextXxx() 读取数值数据
Xxx为数值数据类型,即:数据类型的第一个字母大写,其余小写,如Int ,Float, Double
import java.util.Scanner; //在类外引入库
public class ABC {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入数据:x=");
//使用nextXxx()获取数据
int x=sc.nextInt();
double d=sc.nextDouble();
float f=sc.nextFloat();
System.out.print("数据输入成功\n");
System.out.print(x);
System.out.print(d);
System.out.print(f);
}
}
四)关闭Scanner对象
对象名.close();
选择——if语句、switch结构
if、switch规则与C完全一样
循环
for循环
规则与C++相同!
While循环
规则和C++相同!
while循环通常描述未知循环次数的循环!
数组
两种格式
第一种 C语言数组格式 数组名 [ ]
第二站 C语言动态数组格式 [ ] 数组名
方法(函数)
格式
public static void 方法名(){
//方法体
}
在main中调用,格式与C++调函数相同
不含参
public static void method(){
//方法体
}
参数传递——基本类型
public static void method(int a){
//方法体
}
参数传递——引用类型
与C++不同 参数括号内格式为数组!
public static void method(int []arg){
//方法体
}
面向过程的程序设计举例
学会了以上内容,即可进行面向过程的程序设计!
例:打分系统——综合使用数组、循环结构、if语句、方法及方法调用
import java.util.Scanner;
public class code {
public static void main(String[] args) {
double [] a = new double[6];
Scanner sc=new Scanner(System.in);
System.out.print("请输入6个得分:");
for(int i=0;i<a.length;i++)
{
a[i]=sc.nextInt();
}
func(a);
print(a);
}
public static double fmax(double []arr){
double max=arr[0];
for (int i = 0; i <arr.length; i++) {
if(arr[i]>max) max=arr[i];
}
return max;
}
public static double fmin(double []arr){
double min=arr[0];
for (int i = 0; i <arr.length; i++) {
if(arr[i]<min) min=arr[i];
}
return min;
}
public static double func(double []b){
double cnt=0;
for(int i=0;i<b.length;i++) cnt+=b[i];
return cnt-fmax(b)-fmin(b); //去掉最高、最低分
}
public static double average(double []b){
return func(b)/4;
}
public static void print(double []d){
System.out.println("总得分为:"+func(d));
System.out.println("平均分为:"+average(d));
}
}