JAVA程序语言基础

Java程序语言思维导图.jpg

java程序语言基础
java基础语法
界面输出-输出语句
System.out.println();在打印信息后会自动换行
System.out.print();在打印信息后不会自动换行
例如:

public class Main() {
    public static void main(String [] args) {
        // 在大括号里输入代码
        
        // 打印信息后自动换行
    System.out.println("姓名:洪孝峥");
    System.out.println("年龄:18");
    }
}

/*输出结果为:
 姓名:洪孝峥
 年龄:18
 */    
这里的 // 是可以注释的意思单行代码 ,在//后面的写的内容不会在输出界面显示 。还有/**/这个的意思是多行注释,可以注释多行内容或代码,在两个星号中间输入的内容是不会在输出界面显示的
public class Main() {
    public static void main(String [] args) {
        // 在大括号里输入代码
        
       // 打印信息后不会自动换行
        System.out.print("姓名:洪孝峥");
        System.out.print("年龄:18");
    }
}

/*输出结果为:
 姓名:洪孝峥年龄:18
 */   

变量
语法格式
数据类型(确定变量类型) 变量名(确定变量名) ,变量名 = 值(给变量一个默认值);例如:int num; num = 12;
数据类型 变量名 = 值 如:int a = 12; ";"英文状态下的字符
注意:
变量可以包括数字,但不能以数字开头
变量必须以字母开头、下划线“_”或“”符开头 除了“_”或“”以外,变量名不能包含任何特殊字符
不能使用java语言关键字,如 int、public、class等
java语言区分大小写
同时,为了我们的代码更加规范我们还应该遵循以下命名规范:
尽量使用有意义的变量名,变量名要简短且能清楚地表明变量的作用
第一个单词首字母小写,其后单词的首字母大写
java数据类型
基本数据类型

整数类型

byte :节约空间,占用空间只有int的四分之一 例如:byte b = 5;
short:节约空间,占用空间只有int的二分之一 例如:short s = 10;
int :一般地整型变量默认为 int 类型(常用) 例如:int i = 12;
long:主要用在存储比较大的数据 例如:long l = 23121312L; 注意:这里给变量赋的值要加L
浮点数类型

float:用于储存带有小数的数据 例如:float a = 1.11f; 注意:这里给变量赋的值要加f
double:用于储存带有小数的数据(常用) 例如:double high = 1.75;
特殊数据类型

布尔类型

boolean:只有两个值true(真)/false(假), 默认值为false 例如:boolean flag = true;
字符型

char:用于储存单个字符,例如,性别“男”和“女” char sex = '男'; 注意:这里是用的单引号
引用数据类型

字符串型

String: 用于储存一串字符,例如:String haha = "哈哈哈哈哈哈哈";

public class Main() {
    public static void main(String [] args) {
        // 在大括号里输入代码
        byte b = 5;
        short s = 10;
        int i = 12;
        long l = 23121312L;
        float a = 1.11f;
        double high = 1.75;
        char sex = '男';
        boolean flag = true;
        String haha = "哈哈哈哈哈哈哈";
        // 这里直接打印变量名
        System.out.println(b);
        System.out.println(s);
        System.out.println(i);
        System.out.println(l);
        System.out.println(a);
        System.out.println(high);
        System.out.println(sex);
        System.out.println(flag);
        System.out.println(haha);
    }
    
    /*
        输出的结果为:
        5
        10
        12
        23121312L
        1.11f
        1.75
        男
        true
        哈哈哈哈哈哈哈
    */
}

运算符
赋值运算符

= 说明: 将等号右边的值赋值给左边的变量 例如:int money = 100;使用“=”将数值100放入变量money的储存空间中
算数运算符

% + - * / 说明 : 数学中的加减乘除, %:取余 - 左操作数除以右操作数的余数
关系运算符

!= > < >= <= == 说明 : 不等于、大于、小于、大于等于、小于等于、等于 例如:99 != 100,结果为true(真)、99 > 100,结果为false(假)、99 < 100,结果为true(真)、99 >= 100,结果为false(假)、99 <= 100,结果为true(真)、地球的大小 == 篮球的大小,结果为false
逻辑运算符

&& 说明: 与、并且 当且仅当两个操作数都为真,条件才为真。 例如: (A && B)为假。

|| 说明: 或、或者 如果任何两个操作数任何一个为真,条件为真。 例如: (A | | B)为真。

! 说明: 非 用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false 例如:!(A && B)为真。

public class Main {
    public static void main(String[] args) {
        // 把“=”号后面的值赋值给等号前面的变量
        System.out.println("赋值运算符和算术运算符,变量名是自己定义的,如下面的num,num1,num2等等");
        int num = 7+1;// + 加
        int num2 = 9-1;// - 减
        int num3 = 2*4;// * 乘
        int num4 = 16/2;// 除/
        int num5 = 18%10;// 取余数 %
        System.out.println(num);// 8
        System.out.println(num2);// 8
        System.out.println(num3);// 8
        System.out.println(num4);// 8
        System.out.println(num5);// 8
        System.out.println("----------------------------");
        System.out.println("关系运算符,返回true和false");
        int num99 = 99;
        int num100 = 100;
        System.out.println(num99 != num100);// true
        System.out.println(num99 > num100);// false
        System.out.println(num99 < num100);// true
        System.out.println(num99 >= num100);// false
        System.out.println(num99 <= num100);// true
        System.out.println(num99 == num100);// false
    }
    /*  打印结果为:
        赋值运算符和算术运算符,变量名是自己定义的,如下面的num,num1,num2等等
        8
        8
        8
        8
        8
        ----------------------------
        关系运算符
        true
        false
        true
        false
        true
        false
    */
}

数据类型转换
自动数据类型转换:1.要转换的两种类型要兼容(整数和浮点型)互相兼容。2.我要转换的类型大于源类型 例如:int num = 10;double d = num;这里double类型变量分配的空间大于int类型分配的空间

强制类型转换:(数据类型)表达式 例如:double d = 12.13; int i = (int)i;运行后i的值为12

public class demo01 {
    public static void main(String[] args) {
        // 数据类型转换,直接转换
        int num = 12;
        double num1 = num;// 12.0  因为double是浮点数类型,所以int(整数)类型的num的值转换为double(浮点数)类型num1的值会加个.0
        System.out.println("原数据:" + num);
        System.out.println("转换double类型后:" + num1);

        // 强制转换
        double num2 = 12.99;
        int num3 = (int)num2;// 12  因为int是整数类型,所以double(浮点数)类型的num2的值转换为int(整数)类型num3的值会把小数点和后面的值去掉,这里不遵循四舍五入方法
        System.out.println("原数据:" + num2);
        System.out.println("转换int类型后:" + num3);
    }
}
/*  输出结果为:
        原数据:12
        转换double类型后:12.0
        原数据:12.12
        转换int类型后:12
*/

Scanner对象
java.util.Scanner是java5的新特征,我们可以通过Scannner类来获取用户的输出。
Scanner类:
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。

Scanner使用步骤:

导包:import java.util.Scanner;

创建对象实例:Scanner sc = new Scanner(System.in);

基本语法:

Scanner s = new Scannner(System.in);
import java.util.Scanner;

public class demo01 {

    public static void main(String[] args) {

        //创建Scanner引用类型的变量

        Scanner sc = new Scanner(System.in);

        //获取数字

        System.out.println("请输入一个数字");

        int n = sc.nextInt();

        System.out.println("n的值为" + n);

        //获取字符串

        System.out.println("请输入一个字符串");

        String str = sc.next();

        System.out.println("str的值为" + str);

    }

}

Scanner方法:
next():
1.一定要读取有效字符后才可以结束输入。

2.对输入字符前遇到的空白,next()方法可以自动将空白去掉

3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

next()方法不能得到带有空格的字符串

流程控制语句
if选择结构
if单选择结构:
语法:

if(布尔表达式){
//如果布尔表达式为true将执行的语句
}

public class demo02 {
    public static void main(String[] args) {
        if ( 1+1 == 2 ) {
            System.out.println("1+1= 2");
        }
    }
}
/*
    打印结果
    1+1= 2
*/

if双选择结构:
语法:

if(布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
//如果布尔表达式为false将执行语句
}

public class demo02 {
    public static void main(String[] args) {
        if ( 1+1 == 3 ) {
            System.out.println("1+1= 2");
        }else {
            System.out.println("1+1= 3");
        }
    }
}
/*  打印结果
    1+1= 3
*/

if多选择结构:
语法:

if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔表达式2的值为ture执行代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行代码
}else{
//如果以上表达式的值都不为true执行代码
}

public class demo02 {
    public static void main(String[] args) {
        System.out.println("请输入你的成绩:");
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        if ( num == 100 ) {
            System.out.println("奖励100元");
        }else if ( num <100 && num >= 80) {
            System.out.println("奖励95元");
        }else if ( num <80 && num >= 60) {
            System.out.println("奖励60元");
        }else if ( num < 60 && num >= 0) {
            System.out.println("没有奖励");
        }else{
            System.out.println("输入的成绩不合法");
        }
    }
}
/*打印结果
    请输入你的成绩:
        88
    奖励95元

    
*/

/**
 * if 语句至多有一个else语句,else在所有的else if语句之后。
 * if 语句可以由若干个else if 语句,他必须在else语句之前。
 * 一旦其中一个else if 语句检测为true,其他的else if语句以及else语句都将跳过执行。
 */

嵌套的if结构:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
}

public class Demo06 {
    public static void main(String[] args) {
        System.out.println("输入比赛成绩:");
        Scanner scanner = new Scanner(System.in);
        double miao = scanner.nextDouble();
        if (miao <= 10 ) {
            System.out.println("请输入性别:");
            String sex = scanner.next();
            if ("男".equals(sex)) {
                System.out.println("进入男子组");
            }else if ("女".equals(sex)){
                System.out.println("进入女子组");
            }else{
                System.out.println("额...");
            }
        }else{
            System.out.println("无法进入决赛");
        }
        scanner.close();
    }
}
/*    打印结果
  输入比赛成绩:
  10
  请输入性别:
  男
  进入男子组
*/

switch选择结构

switch(expression){
    case value :   //value是变量类型
        //语句
        break; //可选,如果不打break会直接执行下一个分支
    case value :
        //语句
        break; //可选
    //你可以有任意数量的case语句
    default ://可选
        //语句
}

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入快捷键:");
        int num = scanner.nextInt();
        switch (num) {
            case 1:
                System.out.println("爸爸");
                break;
            case 2:
                System.out.println("妈妈");
                break;
            case 3:
                System.out.println("爷爷");
                break;
            case 4:
                System.out.println("奶奶");
                break;
            default:
                System.out.println("尚未设置此数字的自动拨号");
        }
        scanner.close();
    }
}
/*  打印结果
    请输入快捷键:
    3
    爷爷

*/

循环结构
while

do-while

for

while循环:

while(布尔表达式){
    //循环内容
}

public class Demo01 {
public static void main(String[] args) {
System.out.println("学习是否合格?(y/n)");
Scanner scanner = new Scanner(System.in);
String answer = scanner.next();
while ("n".equals(answer)) {
System.out.println("上午学理论!");
System.out.println("下午学编程!");
System.out.println("学习是否合格?(y/n)");
answer = scanner.next();
}
System.out.println("完成学习任务!");
scanner.close();
}
}
/* 打印结果
学习是否合格?(y/n)
n
上午学理论!
下午学编程!
学习是否合格?(y/n)
y
完成学习任务!

*/
* 只要布尔表达式为true,循环就一直执行下去。
* **我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。**
* 少部分情况需要循环一直执行,比如服务器的请求响应监听等。
* 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!

- #### do...while 循环:

* 对于while 语句而言,如果不能满足条件则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
* do...while 循环和 while 循环相似,不同的是 do...while循环至少执行一次。

java
do {
//代码语句
}while(布尔表达式);
package edu.xcdq;

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String shifouhege = "";
        do {
            System.out.println("上机编写程序");
            System.out.println("是否合格:(y/n)");
            shifouhege = scanner.next();
        }while (shifouhege.equals("n")) ;
        System.out.println("恭喜你合格了");
    }
}
/*
    上机编写程序
    是否合格:(y/n)
    n
    上机编写程序
    是否合格:(y/n)
    y
    恭喜你合格了

*/

While 和do...while的区别:
while先判断后执行。do...while是先执行后判断!
do...while总是保证循环体会被至少执行一次!这是它们的主要差别。
For循环:
虽然所有循环结构都可以用while或者do...while表示,但java提供了另一种语句——for循环,使一些循环结构变得简单。
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。
for循环执行的次数是在执行前都确定的。语法格式如下:
for(初始化;布尔表达式;更新){
//代码语句
}

public class Demo01 {
    public static void main(String[] args) {
        for (int i = 0;i < 10;i++) {
            System.out.println( "第" + i + "次循环" );
        }
    }
}
/*  打印结果
    第0次循环
    第1次循环
    第2次循环
    第3次循环
    第4次循环
    第5次循环
    第6次循环
    第7次循环
    第8次循环
    第9次循环
*/

跳转语句
break:通常用在switch、循环语句中来终止语句

public class demo09 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if ( i == 5 ) {// 第五次循环结束
                break;
            }
            System.out.println("第" + i + "次循环");
        }
    }
}
/*
  第0次循环
  第1次循环
  第2次循环
  第3次循环
  第4次循环
*/

continue:通常用于循环语句,跳过本次循环,执行下一次循环
public class demo09 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if ( i == 5 ) {// 跳出第五次循环
                continue;
            }
            System.out.println("第" + i + "次循环");
        }
    }
}
/*  打印结果
  第0次循环
  第1次循环
    第2次循环
  第3次循环
  第4次循环
  第6次循环
  第7次循环
  第8次循环
  第9次循环

*/

数组
储存多个数据
使用方法
int [] scores; 声明:告诉操作系统有一个数组的变量 叫scores
int [] scores1 = new int[5];声明并初始化 申请了内存空间,申请空间成功,则在内存中初始化为0
int [] scores2 = {1.2.5.4} 声明数组并直接给值
//定义:给定元素的值
scores1[0] = 45;
scores1[1] = 55;
scores1[2] = 65;
scores1[3] = 75;
scores1[4] = 85;

数组插入元素

package edu.xcdq;

import java.util.Arrays;
import java.util.Scanner;


public class Demo06 {
    public static void main(String[] args) {
        /**
         * 插入新元素,依旧保持原数组有序
         */
        int [] scores = new int[7];
        scores[0] = 99;
        scores[1] = 88;
        scores[2] = 77;
        scores[3] = 66;
        scores[4] = 55;
        scores[5] = 44;
        // 1、获取要插入的值
        System.out.println("请输入你要插入的值:");
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        // 2、找到要插入新值的位置
        int index = 0;
        for (int i = 0; i < scores.length; i++) {
            if ( num > scores[i] ) {
                index = i;
                break;
            }
        }
        // 2.1 打印原数组
        System.out.println(Arrays.toString(scores));
        // 3.把元素向后移动  index <-> length-1
        for (int i = scores.length-1; i > index; i--) {
            System.out.println("把" + (i-1) + "位置的元素" + scores[i-1] + "移动到" + i + "位置" + scores[i]);
            scores[i] = scores[i-1];
            System.out.println(Arrays.toString(scores));
        }
        // 4、插入新值
        System.out.println("在" + index + "位置" + scores[index] + "插入新值:" + num);
            scores[index] = num;
        // 5、打印插入后的结果
        System.out.println("降序");
        for (int i = 0; i < scores.length; i++) {
            System.out.print(scores[i] + "\t");
        }
        System.out.println();
        System.out.println("升序");
        for (int i = scores.length-1; i >= 0; i--) {
            System.out.print(scores[i] + "\t");
        }

    }
}
/*    打印结果
请输入你要插入的值:
60
[99, 88, 77, 66, 55, 44, 0]
把5位置的元素44移动到6位置0
[99, 88, 77, 66, 55, 44, 44]
把4位置的元素55移动到5位置44
[99, 88, 77, 66, 55, 55, 44]
在4位置55插入新值:60
降序
99    88  77  66  60  55  44  
升序
44    55  60  66  77  88  99  
*/

java面向对象
类 例如:学生类
对象
属性 名字、年龄、性别、身高、等等
方法 也就是行为 比如 吃、玩、睡觉
语法格式:

public class Student() {
    // 定义属性部分
    // 属性1的类型 属性1
    // 属性2的类型 属性2
    // 属性n的类型 属性n

    // 定义方法部分
    // 方法1
    // 方法2
    // 方法n

}

  ```java
  public class Student {
      // 属性  定义在类中,叫属性,有对应的默认值 如果基本数据类型的变量定义在方法中,不给值则没有默认值
      String name;
      int age;
      char sex;
      double high;
      double height;
      // 方法
      public void eat() {
          System.out.println("吃吃吃");
      }
      public void play() {
          System.out.println("玩耍");
      }
      public void sleep() {
          System.out.println("睡觉");
      }
  
  }
  

对象的创建与使用:

语法格式:

类名 对象名 = new 类名();
在创建类的对象时,需要用到java中的new关键字
例如:Student wangyibo = new Student();
在java中要引用对象的属性和方法,需要使用“.”操作符,对象名在“.”前面,属性或方法在“.”后面

语法格式

对象名.属性 引用对象的属性
对象名.方法 引用对象的方法
例如:创建Student类的对象后,就可以给对象的属性赋值或调用方法了,代码如下
package demo;  // 包 包名
/*
 *  public  公有的,公共的    其他程序都可以访问,最大的权限,其他程序都能访问
 *  class   类
 *  Main    类的名称,随便取名字,最好有意义的,一般要求首字母大写
 *
*/

public class Main {
    /*
    * public  公有的,公共的     其他程序都可以访问,最大的权限,其他程序都能访问
    * static  静态的           没有对象也可以调用,属于公共资源
    * void    空              方法的返回值,由于main是主方法,不需要跟任何程序返回内容,因此就写空
    * main    主要的           方法的名字,可以随便取,但是入口主方法只能写成main,自定义的方法可以自己取,建议有意义,建议首字母小写,驼峰命名法
    * (String[] args)         方法的参数  String[] -> 参数的类型 args 数组的名字
    * */
    public static void main(String[] args) {
        // 对象的创建  类型 对象名 = new 类名()
        Student wangyibo = new Student();
        // 属性的赋值
        wangyibo.name = "王艺博";
        wangyibo.age = 18;
        wangyibo.sex = '男';
        wangyibo.high = 1.75;
        wangyibo.height = 63;
        // 属性的调用
        System.out.println(wangyibo.name);
        System.out.println(wangyibo.age);
        System.out.println(wangyibo.high);
        System.out.println(wangyibo.height);
        System.out.println(wangyibo.sex);
        // 方法的调用
        wangyibo.eat();
        wangyibo.play();
        wangyibo.sleep();
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,132评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,457评论 3 404
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,411评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,147评论 1 301
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,145评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,611评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,962评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,948评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,479评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,514评论 3 347
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,640评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,228评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,973评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,402评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,551评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,210评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,714评论 2 366

推荐阅读更多精彩内容