我在学Java【1】

    科技2024-05-13  88

    Java基础

    前言一、预科1.快捷键2.Dos命令①打开CMD的几种方式②常用Dos命令 二、Java入门基础1. Hello,World!2.使用Idea开发①快捷键 [IntelliJ IDEA help](https://www.jetbrains.com/help/idea/2020.2/configuring-code-style.html)3.Java基础语法①注释②标识符和关键字③数据类型、变量、常量、作用域、运算符④包机制⑤JavaDoc生成文档 三、 Java流程控制1.用户交互Scanner2.练习题①打印三角形 四、方法1.定义2.方法重载3.命令行传参4.可变参数5.☆递归作业:计算器

    前言

    学习途径: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; } }
    Processed: 0.022, SQL: 8