我在学Java【1】

前言

学习途径:bilibili阿婆主遇见狂神说
Java学习完整路线,强烈建议收藏转发
按讲课顺序写下来的,先顺一遍基础
师范的计科老学些有的没的,我是采集学不好,班主任也说了学校教的不足以支持我们进行开发创造,所以还带我们做了编程比赛,话说题目还没拿出来><,等出题了会另开博客去记录,不过第一场应该会依据我们学的C#,Java按课程安排来看的话是大三才教的。


一、预科

1.快捷键

Ctrl+S:保存
Ctrl+Shift+Esc:打开任务管理器
explorer桌面运行任务
Alt+F4:关闭窗口
Alt+Table:切换运行窗口

2.Dos命令

①打开CMD的几种方式

1.WIN+R输入cmd回车
2.资源管理的地址栏输入cmd,直接在指定路径下了
3.Shift+右键打开Powershell
4.Windows任务栏里找


②常用Dos命令

1.盘符切换 :直接输入要进入的盘+冒号(注意一定在英文输入法环境下)
2.查看当前目录下所有文件 :dir
3.切换目录 :cd , 跨盘符需要加上参数'\d'(参数中是反斜杠,路径是斜杠)
   cd.. : 返回上一级目录
4.清理屏幕: cls ,clean screen(Linux下clear)
5.退出终端: exit
6.查看电脑IP: ipconfig (Linux下ifconfig)
7.打开应用
8.ping命令
(Dos下右键粘贴,Ctrl+Z退出)
9.文件操作
  md (新建)目录名
  rd (移除)目录名
  cd> (新建)文件名
  del (移除)文件名
10.java -version 查看已安装java版本
   -help -h

二、Java入门基础

1. Hello,World!

public class Hello{
    
    
	public static void main(String[] args){
    
    
		System.out.print("Hello,World!");
	}
}

在这里插入图片描述

路径下cmd 编译javac Hello.java(避免中文路径)会生成class文件
运行java Hello(不用后缀名)
注意:Java大小写敏感,尽量使用英文,文件名和类名必须保证一致,命名规范,结尾英文分号

权限关键字
你好

2.使用Idea开发

欲工善其事先利其器
集成开发环境智能报错比直接记事本敲 好

①快捷键

在这里插入图片描述在这里插入图片描述在这里插入图片描述

换背景Ctrl+Alt+A搜索background

IntelliJ IDEA help

3.Java基础语法

①注释

书写注释是一个非常重要且良好的习惯,还有写博客记录学习过程也是
//单行注释
/* 多行注释 */
/**JavaDoc:文档注释 */是有功能的,可以加参数 ,例:@Author @Description

②标识符和关键字

标识符 符合规范提高可读性

③数据类型、变量、常量、作用域、运算符

Java的变量要严格符合规定,所有变量都要先定义再使用 ->安全性高
避免浮点数进行比较
<<:左移相当于 * 2,但是用位运算效率极高
>>:同理右移相当于 / 2
其他都不多赘述


④包机制

为了更好地组织类,Java提供了包机制
包的本质就是文件夹,用于区别类名的命名空间
包语句的语法格式:package pkg[. pkg[. pkg3...]];

⑤JavaDoc生成文档

javadoc -encoding UTF-8 -charset UTF-8 Doc.java
即javadoc (参数) Java文件

三、 Java流程控制

1.用户交互Scanner

Java提供的工具类 java.util.Scanner
可以使用Scanner类获取用户输入

  • next()方法的使用:
    next不能得到带有空格的字符串
 public static void main(String[] args) {
    
    

         Scanner scanner = new Scanner(System.in);

        System.out.println("请输入:");

        //hasNext()判断有没有输入字符串,此处其实不必要判断
       if(scanner.hasNext()){
    
    
           //使用next()方法接收
            String str = scanner.next();//等待用户输入
            System.out.println("输出内容为:"+str);
        }

       //IO类流的不关闭会一直占用资源,养成及时关掉的好习惯
         scanner.close();
}
  • nextLine()方法的使用:
   public static void main(String[] args) {
    
    
        //从键盘接收数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入数据:");

        String str = scanner.nextLine();

        System.out.println("输出:"+str);

        scanner.close();
    }
  • 输入其他数据类型:
public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);//接收键盘输入

        int i = 0;
        float f = 0.0f;

        System.out.println("请输入整数:");

        if (scanner.hasNextInt()) {
    
    
            i = scanner.nextInt();
            System.out.println("整数数据:" + i);
        } else {
    
    
            System.out.println("不是整数输入");
        }

            System.out.println("请输入小数:");

            if (scanner.hasNextFloat()) {
    
    
                f = scanner.nextFloat();//等待用户输入
                System.out.println("小数数据:" + f);
            } else {
    
    
                System.out.println("不是小数输入");

            }
            scanner.close();
        }

鼠标停在类名上Ctrl+左键查看源码,Structure中找函数
注意各方法的作用域,以及大小写

  • nextDouble()小应用:
public class Demo03 {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");

        double sum = 0;
        double m = 0;
        //输入不为double类型时推出循环
        while (scanner.hasNextDouble()){
    
    
            double x= scanner.nextDouble();
            m=m+1;
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
        }
        System.out.println(m+"个数的和为"+sum);
        System.out.println(m+"个数的平均数是"+(sum /m));

        scanner.close();
    }
}
  • 增强for循环
public static void main(String[] args) {
    
    
        int[] numbers ={
    
    10,20,30,40,50};

        for(int x:numbers)
        {
    
    
            System.out.println(x);
        }
    }

2.练习题

①打印三角形

public static void main(String[] args) {
    
    
        for (int i = 1; i <= 5; i++) {
    
    
            for (int j = 5; j >i ; j--) {
    
    
                System.out.print(" ");
            }
            //前半
            for (int j = 1; j <=i ; j++) {
    
    
                System.out.print("*");
            }
            //接在另一半后面打印,少1
            for (int j = 1; j < i; j++) {
    
    
                System.out.print("*");
            }
           //换行
            System.out.println();

        }

运行效果
在这里插入图片描述


四、方法

1.定义

Java的方法 类似于其他语言的函数,是一段用来完成特定功能的代码片段。

2.方法重载

就是在一个类中,有相同的函数名称,但形参不同的函数。

3.命令行传参

有时候希望运行一个程序时候在传递给它消息。这要靠传递命令行参数给main()函数实现。

public class Demo02 {
    
    
    public static void main(String[] args) {
    
    
//        args.length  数组长度
        for (int i = 0; i < args.length; i++) {
    
    
            System.out.println("args[" + i + "]:" + args[i]);
        }
    }
}

4.可变参数

JDK1.5开始,Java支持传递同类型的可变参数给一个方法;
在方法声明中,在指定参数类型后加一个省略号(…);
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明。

5.☆递归

-  即自己调用自己。
- 递归结构包括两个部分:
   -  递归头:什么时候不调用自身方法。如果没有将陷入死循环!
   - 递归体:什么时候需要调用自身方法。
public static void main(String[] args) {
    
    
        System.out.println(f(4));

    }
    public static int f(int n){
    
    
        if(n==1){
    
    
            return 1;
        }else {
    
    
            return n*f(n-1);
        }
    }

作业:计算器

  • 写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
  • 思路推荐:
    • 写四个方法:加减乘除
    • 利用循环+switch进行用户交互
    • 传递需要操作的两个数
    • 输出结果

思路推荐也很清楚跟着写下来就行了。

public class Test01 {
    
    
    public static void main(String[] args) {
    
    

        Scanner scanner=new Scanner(System.in);
        System.out.println("输入1开始运算,输入2结束运算");
        int selection=scanner.nextInt();

        while (selection==1) {
    
    
            System.out.println("请输入第一个数字:");
            double num1=scanner.nextDouble();
            System.out.println("请输入第二个数字:");
            double num2 =scanner.nextDouble();
            System.out.println("请输入运算符(+、-、*、/):");
            String operator=scanner.next();

            switch (operator){
    
    
                case "+":
                    System.out.println("运算结果为:"+add(num1,num2));
                    break;
                case "-":
                    System.out.println("运算结果为:"+subtraction(num1,num2));
                    break;
                case "*":
                    System.out.println("运算结果为:"+multiplication(num1,num2));
                    break;
                case "/":
                    System.out.println("运算结果为:"+division(num1,num2));
                    break;
            }
            System.out.println("输入1开始运算,输入2结束运算");
            selection=scanner.nextInt();
        }
        if(selection==2) {
    
    
            System.out.println("结束运算!");
        }

    }
    public static double add(double num1,double num2)
    {
    
    
        return num1+num2;
    }

    public static double subtraction(double num1,double num2){
    
    
        return num1-num2;
    }

    public static double multiplication(double num1,double num2){
    
    
        return num1*num2;
    }

    public static double division(double num1,double num2){
    
    
        return num1/num2;
    }
 }

猜你喜欢

转载自blog.csdn.net/bocaiaichila/article/details/108949799