Java基础(二) Java程序设计基础

前言:经过上一章对Java的基本了解后,这一章主要讲解标识符和关键字、基本数据类型、数据的输入与输出、数组、运算符、控制语句。

一 标识符和关键字


1.标识符

定义

用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字。

Java语言规定

标识符由字母、下划线、美元符号和数字组成,长度不受限制,区分大小写。(Java使用的是16位的Unicode字符集)
标识符的第一位字符不能是数字字符。
标识符不能是关键字。
标识符不能是true、false和null(尽管true、false和null不是关键字,但在Java中有特殊含义)。

注:标识符命名有一定的规范,在这里也不再赘述了。

2.关键字

定义

关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用。

Java中具体的关键字举例

abstract break byte boolean catch case class char continue default
double do else extends final float for finally if import implements
int interface instanceof long length native new package private
protected public final return switch synchronized short static super
try this throw throws transient void while

注:关键字都是小写,遇到大写肯定不是关键字。

3.样例分析

问:下列标识符哪些是正确的?
在这里插入图片描述
答: userName1Online_User_sys_val 是正确的,符合Java标识命名规则,2mail 错在第一位使用了数字,room# 错在标识符有符号‘#’,class 错在使用的是Java中的关键字class,hello-world 错在标识符里有减号’-’。(回答错误的同学,再看看上面的Java标识符规定)

二 数据类型

Java是一门强类型语言,即所有的变量都必须显示声明类型。
Java的数据类型分为两大类:基本数据类型和引用数据类型。

在这里插入图片描述
1.基本数据类型

所有基本类型所占的位数都是确定的,并不因操作平台的不同而不同。

在这里插入图片描述注:float类型常量必须有后缀 f 或 F,例如 float a=22.76f;
double类型可以有后缀 d 或 D,也可以没有;
long类型常量必须有后缀 l 或 L,例如 long b=123l;

2.引用数据类型

在Java中“引用”是指向一个对象在内存中的位置,在本质上是一种带有很强的完整性和安全性的限制的指针。
当你声明某个类,接口或数组类型的一个变量时,那个变量的值总是某个对象的引用或者null引用。
指针就是简单的地址而已,引用除了表示地址以外,还是被引用的数据对象的缩影,还提供其它信息。
指针可以有++、–运算,引用不可以运算。

3.转义字符常量

有些字符(如回车符)不能通过键盘输入到字符串或程序中,需要使用转义字符常量。

例如:\n(换行),\b(退格),\t(水平制表),\’(单引号),\"(双引号),\\(反斜线)等。

4.数据类型的转换
Java中数据的基本类型(不包括逻辑类型)按精度从“低”到"高"排列:
byte<short<char<int<long<float<double

规则:

  • 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如:float x=100;
  • 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;例如:int x=(int)34.89;
  • 当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;例如:byte b=128(×);
    byte b=(byte)128(√);

5.样例分析
问一:下列Java语句中,不正确的一项是
在这里插入图片描述
答一:选择C,C错在 0.0d是double类型的常量,double类型转float类型需要强制类型转换。正确写法:
float e=(float)0.0d 或者 float e=0.0f。

问二:以下的变量定义中,合法的语句是
在这里插入图片描述
答二:选择B,A错在变量名首位用了数字以及float类型常量必须加后缀 f 或 F。C错在double在科学计数法下,e后面只能是整数。D错在变量名用了关键字。

问三:现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+(char)i;语句后,c1的值为
在这里插入图片描述
答三:选择D,首先这里将整型 i 强制转换位 char类型,c1也是char类型,因为‘+’只能表示两整型相加,或者表示连接两个字符串,所以这里最后产生的结果是 int 型,int赋给char类型的c1需要强制类型转换,但这里并没有强制转换,所以会在编译时报错。

三 数据的输入与输出


Java是面向对象的语言,即使是输入输出也是用创建对象,调用方法的方式完成。

  1. 首先使用 import java.util.* 引入util包。
  2. 使用util包中的 Scanner 类创建一个对象 reader。
  3. 调用reader对象的方法,读取用户在命令行输入的各种基本类型数据。
  4. 使用System类实现数据输出。

在这里插入图片描述

reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据。

nextBoolean()、nextByte()、nextShort、nextInt()、nextLong()、nextFloat、nextDouble()。

读取字符串的方法

next() 从有效字符开始读入,空格,Enter,Tab结束读入,不可以读带空格的字符串。
nextline() 只以Enter结束读入,可以读带空格的字符串。

注:Scanner创建的对象没有读取一个字符的方法,可以先读取字符串,再分割出单个字符。

数据输出的方法

System.out.print不换行输出。
System.out.println换行输出。
System.out.printf完成类似于C语言printf的输出

注:’+‘在有字符串的情况下,可以完成字符串的连接。例如:“你好”+“朋友”=“你好朋友”。

四 数组

数组是相同类型的数据按顺序组成的一种引用数据类型。通过数组名加数组下标,来使用数组中的数据。下标从0开始排序。

声明数组
在这里插入图片描述
为数组分配元素
在这里插入图片描述
数组的内存模型
在这里插入图片描述
数组元素的使用

一位数组通过索引(下标运算)符访问自己的元素。如boy[0],boy[1]等。索引从0开始。因此,数组若有4个元素,那么索引到3为止。

length字段的使用

使用“数组名.length”可以得到数组中元素的个数;例如:boy.length的值为4。

数组初始化

创建数组后,系统会为数组的每个元素一个默认的值;例如,float型是0.0,int型是0。如果需要赋值就为每个元素赋值即可。

注:在声明数组的同时也可以给数组的元素一个初始值,如下

float boy[] = {21.3f,23.89f,2.0f,23f,778.98f};

数组的引用

数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

a[]={1,2,3}; b[]={4,5,6}; a=b; a[]={4,5,6};
在这里插入图片描述
多维数组
在这里插入图片描述
多维数组分配空间
在这里插入图片描述
注:使用运算符new来分配内存时,对于多维数组至少要给出最高维大小,也可以int b[][] =new int[3][3]直接为每一维分配相同的大小。

多维数组的初始化
在这里插入图片描述
样例分析

问:判断正误
在这里插入图片描述
答:是错误的,int[][] t={{1,2,3},{4,5,6}}相当于有一个t[2][3]的数组,t.length是高维的所以是2,t[0].length是低维的所以是3。

编程题:编写程序构造如图所示杨辉三角。
在这里插入图片描述
代码如下

package test;
import java.util.*;
public class Main {
 public static void main(String[] args) {
  int a[][] = new int[7][7];
  a[1][1]=1;
  for(int i=2;i<=6;i++)
  for(int j=1;j<=i;j++)
  a[i][j]=a[i-1][j]+a[i-1][j-1];
  for(int i=1;i<=6;i++)
  {
   for(int j=1;j<=6-i;j++)
   System.out.print(" ");
   for(int j=1;j<=i;j++)
   System.out.printf("%2d ",a[i][j]);
   System.out.println();
  }
 }
}

运行结果如下
在这里插入图片描述

五 运算符


Java运算符与C运算符一致,这里就不过多赘述了。
在这里插入图片描述
这里介绍一种instanceof运算符
instanceof 运算符

是二目运算符,左边的操作元是一个对象;右面是一个类。当左边的对象是右边的类或子类创建的对象时,该运算符运算的结果是true,否则是false。

例如
在这里插入图片描述

六 控制语句


1.分支语句
if语句;if-else语句;if-else if-else语句。
在这里插入图片描述

2.开关语句
switch语句
在这里插入图片描述

3.循环语句
for循环语句;while循环语句;do-while循环语句;
与C/C++一致,这里不赘述了。
主要介绍一种增强for循环语句。
在这里插入图片描述
表示对于循环变量依次去数组的每一个元素的值。
在这里插入图片描述
4.break,continue语句
在这里插入图片描述

这一章让我们对Java编程有了初步了解,下一章学习类和对象(点击跳转)。

猜你喜欢

转载自blog.csdn.net/weixin_44491423/article/details/106957291