JavaSE编程002《基础语法》

思维导图

在这里插入图片描述

Java程序说明

  • (1).应用程序主类:
    一个Java程序必须有一个含有public class void main(String args[])方法,称这个类是应用程序的主类- (2).解释器:
    使用Java解释器(java.exe)来解释执行其字节码文件。Java应用程序总是从主类的main方法开始执行。当Java应用程序中有多个类的时候,Java解释器解释执行的类名必须是主类的名字

我的第一个Java程序

案例
package JavaNote;
/*  多行注释:
    2020年3月23日
*/

/**
 * 文本注释
 */

public class HelloWorld {

    // 关键字 private static class .........
    public static void main(String[] args) {
        // 此处是单行注释

        System.out.println("Hello World.......");
    }
}
/*
s/JavaSE_d995f1f1/bin JavaNote.HelloWorld 
Hello World.......
*/
格式化输出

格式控制:

%d 输出int类型数据
%c 输出char类型数据
%f 输出浮点型数据,小数部分最多保留6位
%s 输出字符串数据
%md 输出的int类型数据占m列
%m.nf 输出的浮点型数据占m列,保留n为有效数字

关键字

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个快
byte 基本数局类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1]
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

标识符、变量类型

package JavaNote;

//类名命名规则:大驼峰
public class JavaLearningNote001{

    public static void main(final String[] args) {
        // 对变量进行命名使用标识符(变量命名规则,小驼峰)
        // 申明变量类型为String,int 等等........
        String name = "JavaSE";
        int age = 18;

        //输出上边定义的标识符
        System.out.println(name);

        // Java中的数据类型
        // 基本数据类型
        int grade = 89;
        double balance = 55.9;

        // 引用型数据类型:数组,类,方法等等....
        int [][] a = new int[2][3];
        put();;

    }

    public static void put(){
        System.out.println("我是一个方法.......");
    }
    
}

基本数据类型

整数类型

int类型,byte类型,short类型,long类型
在这四种主句类型中,int和long可以定义常量和变量两种,byte和short在Java中暂时不存在常量表示。
int类型定义常量时:123,5000(十进制),077(八进制),0x3ABC(十六进制)
long类型定义常量时:采用后缀L来表示,如108L(十进制),07123L(八进制),0x3ABCL(十六进制)
而要使用某一个类型定义变量时,只需要直接使用其关键字申明即可。

字符类型

常量直接定义:‘a’,’!’,’?’,‘你好’,'78’等等
变量:使用char关键字申明

浮点类型(其分为单进度float和双精度double):
常量:
单精度:453.5439f,21379.987F,231.0f(小数表示法),2e40f(2乘10的40次方),常量必须使用后缀f,F. 双精度:2389.539d,2318908.987,0.05(小数表示),1e-90(1乘10的-90次方),可以不使用后缀d,D
变量:
与其他类型一样,直接使用其关键字申明即可
各个数据类型从有效长度

public class Page003 {
	public static void main(String args[]) {
		System.out.println("byte的取值范围:"+Byte.MIN_VALUE+"至"+Byte.MAX_VALUE);
		System.out.println("short的取值范围:"+Short.MIN_VALUE+"至"+Short.MAX_VALUE);
		System.out.println("int的取值范围:"+Integer.MIN_VALUE+"至"+Integer.MAX_VALUE);
		System.out.println("long的取值范围:"+Long.MIN_VALUE+"至"+Long.MAX_VALUE);
		System.out.println("float的取值范围:"+Float.MIN_VALUE+"至"+Float.MAX_VALUE);
		System.out.println("double的取值范围:"+Double.MIN_VALUE+"至"+Double.MAX_VALUE);
	}
}
/*
byte的取值范围:-128至127
short的取值范围:-32768至32767
int的取值范围:-2147483648至2147483647
long的取值范围:-9223372036854775808至9223372036854775807
float的取值范围:1.4E-45至3.4028235E38
double的取值范围:4.9E-324至1.7976931348623157E308
 */

运算符

算术运算符
  • \ + - * / % ++ –
  • "+"有几种用法:拼接字符串;数值数据做加法
  • 自增、自减运算符是++、–是单目运算符。可以放在操作圆之前,也可以放在操作元之后,操作元必须是一个整型或者浮点型变量,作用是使变量的值加1或者减1。
  • ++x(–x)表示在使用x之前,先使x的值增(减)1.
  • x++(x–)表示在使用x之后,使x的值增(减)1.
关系运算符(比较)
  • == != > < >= <=

  • 需要注意什么类型的数据使用什么运算符

赋值运算符
  • =

  • += -= *= /= %= 特点

逻辑运算符
  • & && | || ! , 注意 & | 可以用作逻辑运算,还可以用作什么(位运算)?

  • 逻辑值与逻辑值之间的运算 true false

  • && || !(取反) (主要使用)

  • & &&(短路与 也是逻辑运算) 区别
    相同点:
    当左右的表达式值都为true 结果为true
    不同点:
    & 当表达式中出现false,还会继续执行后面的表达式
    && 当表达式中出现false,就不会执行后面的内容(遇假则假)

  • | ||
    相同点:
    只要表达式中有一个true,结果就为true.
    不同点:
    | 当表达式中出现true,还会继续执行后面的表达式
    || 当表达式中出现true,就不会执行后面的内容(遇真则真)

位运算:按位运算 位:二进制bit位
  • & | ~ ^ >> << >>>

  • & ! 左右为逻辑值,则进行逻辑运算

运算符 含义
& 按位与
| 按位或
~ 按位非
^ 按位异或
<< 左位移运算符
>> 右位移运算符
> > > 无符号右移运算符
条件运算符(三目运算)
  • x?y:z

  • x 是一个条件表达式

  • x==true 则执行y表达式

  • x==false 则执行z表达式

package JavaNote;

import java.util.Scanner;

public class JavaLearningNote002{

    public static void main(String[] args) {
        // 实现基本的运算:用户输入一个半径,计算元的面积
        Scanner scanner = new Scanner(System.in);

        //定义一个圆的半径
        System.out.println("输入圆的半径");
        double r = scanner.nextDouble();

        // 开始计算圆的面积
        // 定义圆的面积变量:引用了Java自带的数学库Math
        double s = Math.PI * r * r;

        // 输出圆的面积   输出内容使用+进行拼接
        System.out.println("圆的面积为"+s);
    }
}

/*
e37bbba6cdb539eaab/redhat.java/jdt_ws/JavaSE_d995f1f1/bin JavaNote.JavaLearningNote002 
输入圆的半径
6
圆的面积为113.09733552923255
*/

条件空值语句

switch … case …开关语句的使用
案例一
/*
switch (表达式)
{
	case 常量值1:
		若干个语句
		break;
	case 常量值2:
		若干个语句
		break;
	case 常量值n:
		若干个语句
		break;
	default:
		若干语句
}
*/
import java.util.*;
public class Page001 {
	public static void main(String args[]) {
		int number = 0;
		System.out.println("输入正整数(按enter确定):");
		Scanner reader = new Scanner(System.in);
		number = reader.nextInt();
		switch(number) {
		case 9:
		case 131:
		case 12:
			System.out.println(number+"是三等奖");
			break;
		case 209:
		case 596:
		case 27:
			System.out.println(number+"是二等奖");
			break;
		case 875:
		case 316:
		case 59:
			System.out.println(number+"是一等奖");
		default:
			System.out.println(number+"未中奖");
		}
	}
}
/*
输入正整数(按enter确定):
27
27是二等奖
*/
案例二

package JavaNote;

import java.util.Scanner;

public class Page002{

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        
        // switch ... case 语句
        // 用户输入一个字符,给出相应的评价
        System.out.println("输入一个字符");
        String grade = scanner.next();
        
        // 使用开关语句进行判断
        switch(grade){
            case "A":
                System.out.println("A");
                break;
            case "B":
                System.out.println("B");
                break;
            case "C":
                System.out.println("C");
                break;
            case "D":
                System.out.println("D");
                break;
            default:
                System.out.println("都不满足条件");
                break;
        }
    }
}

/*
superme@ubuntu:~/JavaSE$  cd /home/superme/JavaSE ; /usr/local/jdk1.8/bin/java -Dfile.encoding=UTF-8 -cp /home/superme/.config/Code/User/workspaceStorage/fa5e4cfe4092c2e37bbba6cdb539eaab/redhat.java/jdt_ws/JavaSE_d995f1f1/bin JavaNote.Page002 
输入一个字符
B
B
*/
for循环 while循环的使用
案例一
package JavaNote;

import java.util.Random;
import java.util.Scanner;

public class CirculationPricate{

    public static void main(String[] args) {
        
        

        // for循环使用
        // 打印乘法表
        for (int i=1;i<10;i++){

            for (int j=1;j<=i;j++){

                System.out.print(j+" * "+i+" = "+(i*j)+" ");
            }
        System.out.println();
        }

        System.out.println("----------------------------------------------------");

        // white循环的使用
        Scanner Scanner = new Scanner(System.in);
        // 产生一个随机数猜数字
        Random random = new Random();
        // 产生随机数
        int number = random.nextInt(10);
        System.out.println(number);

        //用户输入要猜的数字
        System.out.println("输入一个数字.");
        int inputNumber = Scanner.nextInt();
        while (number != inputNumber){
            System.out.println("猜错了,重新输入..");
            inputNumber = Scanner.nextInt();
        }
        System.out.println("猜对了.....");

    }
}


/*
superme@ubuntu:~/JavaSE$  /usr/local/jdk1.8/bin/java -Dfile.encoding=UTF-8 -cp /home/superme/.config/Code/User/workspaceStorage/fa5e4cfe4092c2e37bbba6cdb539eaab/redhat.java/jdt_ws/JavaSE_d995f1f1/bin JavaNote.CirculationPricate 
1 * 1 = 1 
1 * 2 = 2 2 * 2 = 4 
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81 
----------------------------------------------------
5
输入一个数字.
4
猜错了,重新输入..
5
猜对了.....
superme@ubuntu:~/JavaSE$ ^C
superme@ubuntu:~/JavaSE$ 
*/
案例二
//for循环打印1000以内的完数

public class CirculationPricate001 {
	public static void main(String args[]) {
		int i = 1;
		int j = 1;
		for (i = 1;i < 1000;i++) {              //保证循环次数小于1000
			int num = 0;
			for(j = 1;j < i;j++) {          
				if (i % j ==0) {                //寻找因数
					num += j;                   //将所有因数累加,方便下一步判断
				}
			}if (num == i) {                    //判断是否满足完数的条件
				System.out.println(i+"是完数!");
			}
		}
	}
}
/*
6是完数!
28是完数!
496是完数!
*/
案例三
//使用for循环计算1+1/2!+1/3!+....的前20项和


public class CirculationPricate002{
	public static void main(String arg[]){
		double sum = 0,item = 1;
		int i,n = 20;
		for (i = 2;i < n;i++) {
			sum += item;
			item = item*(1.0/i);
		}
		System.out.println("sum = "+sum);
	}
}
//sum = 1.7182818284590455
案例四
do{
	若干语句
}while(表达式)

实例operation5.java:
//和使用do-while循环计算1+1/2!+1/3!+....的前20项和

public class operation5{
	public static void main(String args[]) {
		double sum = 0,itme = 1;
		int i = 1;
		do {
			sum += itme;
			i += 1;
			itme = itme*(1.0/i);
		}while(i<20);
		System.out.println("sum = "+sum);
	}
}
//sum = 1.7182818284590455

方法

package JavaNote;

public class JavaMethod{

    public static void main(String[] args) {
        method1();
        System.out.println("-------------------------------------------");
        method2();
        System.out.println("-------------------------------------------");
        method3();
    }

    // 定义三个方法
    public static void method1(){
        System.out.println("我是方法1..................");
    }

    public static void method2(){
        System.out.println("我是方法2..................");
    }

    public static void method3(){
        System.out.println("我是方法3..................");
    }
}
/*
superme@ubuntu:~/JavaSE$  cd /home/superme/JavaSE ; /usr/local/jdk1.8/bin/java -Dfile.encoding=UTF-8 -cp /home/superme/.config/Code/User/workspaceStorage/fa5e4cfe4092c2e37bbba6cdb539eaab/redhat.java/jdt_ws/JavaSE_d995f1f1/bin JavaNote.JavaMethod 
我是方法1..................
-------------------------------------------
我是方法2..................
-------------------------------------------
我是方法3..................
superme@ubuntu:~/JavaSE$ 
*/

发布了63 篇原创文章 · 获赞 1 · 访问量 2010

猜你喜欢

转载自blog.csdn.net/qq_45061361/article/details/105047597