
本文共 6670 字,大约阅读时间需要 22 分钟。
Java基础
前言
学习途径:bilibili阿婆主遇见狂神说 按讲课顺序写下来的,先顺一遍基础 师范的计科老学些有的没的,我是采集学不好,班主任也说了学校教的不足以支持我们进行开发创造,所以还带我们做了编程比赛,话说题目还没拿出来><,等出题了会另开博客去记录,不过第一场应该会依据我们学的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.查看当前目录下所有文件 :dir3.切换目录 :cd , 跨盘符需要加上参数'\d'(参数中是反斜杠,路径是斜杠) cd.. : 返回上一级目录4.清理屏幕: cls ,clean screen(Linux下clear)5.退出终端: exit6.查看电脑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
3.Java基础语法
①注释
书写注释是一个非常重要且良好的习惯,还有写博客记录学习过程也是
//单行注释
/* 多行注释 */
/**JavaDoc:文档注释 */
是有功能的,可以加参数 ,例:@Author @Description ②标识符和关键字
标识符 符合规范提高可读性
③数据类型、变量、常量、作用域、运算符
Java的变量要严格符合规定,所有变量都要先定义再使用 ->安全性高
避免浮点数进行比较<<
:左移相当于 * 2,但是用位运算效率极高 >>
:同理右移相当于 / 2 其他都不多赘述 ④包机制
为了更好地组织类,Java提供了包机制
包的本质就是文件夹,用于区别类名的命名空间 包语句的语法格式:package pkg[. pkg[. pkg3...]];
⑤JavaDoc生成文档
javadoc -encoding UTF-8 -charset UTF-8 Doc.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; } }
发表评论
最新留言
关于作者
