云栖社区专家系列课——Java必修课第二讲

240 阅读8分钟
原文链接: click.aliyun.com

Java 必须课是零基础 Java 学习者的入门课程,涵盖了 Java 初学者应该掌握的所有核心知识,由最课程创始人、微软 MVP 陆敏枝主讲。本节课陆老师从概念和代码示例(计算器)两方面着重讲解了 Java 中变量、 API 文档、输入输出和运算符四方面基础知识。


课程基本信息

开课时间:每周四下午:14 : 00-15 : 30

主讲人:云栖社区专家,陆敏枝

直播视频链接:

cloud.video.taobao.com/play/u/3586…

欢迎下载或在线观看

本课程重点内容:

本次课程在上一讲的基础上,着重讲解Java中变量、API文档、输入输出和运算符四部分。

(一)变量

变量部分主要讲解了变量的简述、变量的使用方法、变量类型。

1 、变量简述:初学者可以这么理解变量:如果说类和方法是用来存放逻辑的容器,那么变量则是用来放数据的容器(不完全正确);实际上变量是内存中地址的引用(后续课程会讲解)。

2 、变量使用:

(1 )变量可以是任意数据类型,包括 Int 、 Boolean 、 String 、 char 等;

(2 )变量声明:可以同时声明单个或多个变量: int a =5 \ int d,e,r=5

(3 )变量初始化:变量在使用前需要初始化,变量的初始化有两种方式,一种是声明变量的同时就进行了初始化,如 int a=5 ;另一种是声明变量时不初始化,在使用之前进行初始化,如 int a;a=5 ;

3 、变量类型:

(1) 局部变量:为方法内部的变量,在方法内部或者代码块中声明,只允许被当前方法所使用;

(2) 参数变量:方法声明中的变量,方法用于传递信息的参数变量;

(3) 类变量:方法外部的变量(类的内部),必须在类体中声明,并且用static 关键字修饰,也称为静态变量,类内部的多个方法均可调用该变量;

(4) 实例变量,在类体中声明但不使用static 修饰,也称为非静态变量(在面向对象时,再具体学习)。

课后作业 :定义所有基本类型的变量

(二)输入输出简述

在本次课程中,我们通过加法计算器的实现方法,讲解了键盘获取用户输入的Scanner 类、标准输入流 System.in 、标准输出流输 System.out 的概念和具体使用方法。

(1 )加法计算器代码:


public class MathTester{
public static void mian(String[] args){
System.out.printIn(“请输入第一个参数:”);
//借助JDK的帮助来获取用户的输入
java.util.Scanner scanner=new java.util.Scanner(System in);
int a = scanner.nextInt();\\获取键盘上的一个值,并赋值给变量a
System.out.printIn(“您输入的第一个值为:”+a);
 
System.out.printIn(“请输入第二个参数:”);
int b = scanner.nextInt();
System.out.printIn(“您输入的第二个值为:”+b);
 
int theResult=add(a,b);
System.out.printIn(“Result=”+theResult); #输出函数
}
public static int add(int a,int b){
int re=a+b;
return re;
}
}

Scanner:java.util.Scanner 表明有一个类叫 Scanner ,它在 JDK 的路径 java.util 下。 Scanner 是一个引用类型的类,,是 jdk 里默认提供给用户的一个类型。

java.util.Scanner scanner=new java.util.Scanner(System in);

int a = scanner.nextInt();\\ 获取键盘上的一个值,并赋值给变量 a

当通过new Scanner(System.in) 创建一个 Scanner ,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给 Scanner ,作为扫描对象,并将该对象传递给了 scanner 局部变量;在 new Scanner 时,给它传递了一个构造参数 System.in ,这样 scanner 就知道自己要去控制台获取参数。如果要获取输入的内容,则只需要调用 Scanner 的 nextInt() 方法即可,其中 scanner.nextInt() 是 scanner 的内置方法,用于获取键盘上输入的一个整数值,其他内置方法有:

· nextByte(); 读取一个 byte 类型的整数。

· nextShort(); 读取一个 short 类型的整数。

· nextInt(); 读取一个 int 类型的整数。

· nextLong(); 读取一个 long 类型的整数。

· nextFloat(); 读取一个 float 类型的整数。

· nextDouble(); 读取一个 double 类型的整数。

· next(); 读取一个字符串,该字符在一个空白符之前结束。

· nextLine(); 读取一行文本(即以按下 enter 键为结束标志)。

(2 )输入输出流

在Java 中,使用 System.out 表示标准输出设备,使用 System.in 表示标准输入设备。默认情况下,输出设备是现实器,输入设备是键盘:

· System.in :标准输入流,用于接受控制台输入;

· System.out :标准输出流,用户输出控制台信息。

为完成控制台输出,只需要使用println 方法就可以在控制台上现实基本值或字符串。 Java 并不直接支持控制台输入,可以使用 Scanner 类创建它的对象,用以读取来自 System.in 的输入。

(三)API 文档

当初学者初次接入某个公共类时,如Scanner ,不清楚其用法及其内置函数时,该怎么办呢?此时, API 文档就发挥其作用。

API ,全称为 application programming interface 的缩写,中文称为应用程序编程接口。初学者可以将其理解为前人已经编写好,供调用的类和方法。例如,在输入中使用的 Scanner 类,打开 API 文档后,可以通过关键字 Scanner 直接搜索到这个类的介绍页面,当然也可以通过包名一层层找下去,直到找到这个类,如下图。

161d55223ed2de84766e529badc4ee837f73b1f2 

Java API 文档提供了很多官方的介绍和类、方法、变量的解释。一般很系统,涉及所有的方面,如果开发人员对正在使用的类不熟悉,想查看类里面的变量或者方法,就可以打开 JavaAPI 文档进行阅读和查看,初学者可以借助示例代码加强对 API 的讲解。

课堂练习:

通过在API 中查询 Date 类的使用方法,查询并输出当前日期:


import java.util.Date // java.util.Date date = new  java.util.Date()
public class APITester{
public static void mian(String[] args){
Date date=new Date();
System.out.printIn(date.toString());
}
}

其中import java.util.Date 语句是在程序中使用时简写 Date 类;如不引用,则上述代码 line 4 应为: java.util.Date date = new  java.util.Date();

 

(三)运算符

Java 中包括四种运算符:

①算数运算符( 9 ):‘ + ’(加),‘ - ’(减),‘ * ’,‘ / ’,‘ % ’,‘ ++ ’,‘ -- ’,‘ + ’(正),‘ - ’(负)

②关系运算符( 6 ): == ! =  > >= < <=

③逻辑运算符( 6 ): && || ! ^ & |

④位运算符( 7 ): &| ~ ^ >> << >>>

(1 )算数运算符:其操作数必须是数值类型,又分为一元运算符和二元运算符,一元运算符,只有一个操作数;二元运算符有两个操作数,运算符在两个操作数之间 .

①一元运算符:正‘ + ’,负‘ - ’,自加‘ ++ ’,自减‘ -- ’,本次课程着重讲解了 a++ 和 ++a 的区别:

++a\--a :用于数值变量之前,在赋值操作中,先对被“ ++ ”或“ -- ”操作变量值先加 1 或者先减一,然后在进行其他的操作(先自加 \ 减,再赋值);

a++\a-- :用于数值变量之后,在赋值操作中,先用被“ ++ ”或“ -- ”的操作变量值进行其他操作,然后再对其值加 1 或减 1 (先赋值,再自加 \ 减)。

一元运算符代码示例:


public class OperatorTester{
public static void mian(String[] args){
Int a=5;
Int b=2;
b=+a;
System.out.printIn(“a=”+a + “\t b=”+b);//\t是一个占位符,表示这里要空一个制表单位
Int c;
c=-a
System.out.printIn(“a=”+a + “\t c=” + c);//\t是一个占位符,表示这里要空一个制表单位
Int d;
d=++a; //先a=a+1,再d=a
System.out.printIn(“a=”+a + “\t d=”+d);
Int e;
e=a++;//先e=a,再a=a+1
System.out.printIn(“a=”+a + “\t e=”+e);
Int f;
f=--a;//先a=a-1,再f=a
System.out.printIn(“a=”+a + “\t f=”+f);
Int g;
g=a--;//先g=a,再a=a-1
System.out.printIn(“a=”+a + “\t g=”+g);
}
}

输出结果是:a=5    b=5

a=5    c=-5

a=6    d=6

a=7    e=6

a=6    f=6

a=5    g=6

 

②二元运算符:‘ + ’,‘ - ’,‘ * ’,‘ / ’,‘ % ’,在二元运算符中,乘、除、取余优先级高于加、减法。当二元运算符操作的两个数据类型不一样时,结果值随精度大的那一个。

在本次课程,还涉及到变量强制转型,不同精度数运算等知识点。

二元运算符代码示例:


public class OperatorTester{
public static void m2(){
int a=3;
int b=2;
System.out.printIn(“加法,3+2” +( a + b));
System.out.printIn(“减法,3+2” +( a - b));
System.out.printIn(“乘法,3+2” + a * b);
System.out.printIn(“除法,3+2” + a / b);
System.out.printIn(“求余,3+2” + a % b);
//高精度数和低精度数运算时,结果值为高精度类型存储
float c= 5.17f
System.out.printIn(“单精度 加整数,5.17+3=” +(c+a));//输出为8.17
System.out.printIn(“单精度 除整数,5.17/3=” +(c/a));
}

 

上一讲回顾

上一讲课我们主要讲解了Java JDK 的下载、安装以及 JDK 、 JRE 、 JVM 的概念;讲解了编写 Java 程序的基础知识点,其中着重讲解了关键字、标识符以及数据类型,并编写了第一个 Java 程序—— Hello World 。


课程介绍

本套课程是零基础Java 学习者的入门课程,涵盖了 Java 初学者应该掌握的所有核心知识,并由最课程创始人、微软 MVP 陆敏枝主讲。课程内容包括了基本语法、运算符、流程控制、面向对象、 Java API 、 IO 流、多线程、反射与代理。旨在通过本次课程,在对 Java 这门编程语言有初步的了解的基础上为后续学习高级课程打下坚实的基础。