Java入门01
文章目录
本文为b站《狂神说Java零基础学习视频》学习笔记
预科知识
常见的DOS命令
打开命令提示符CMD(常用普通 / 以管理员身份运行)
-
切换盘符
盘符+”:“
-
查看当前目录下的所有文件
dir
-
切换目录
cd /d e:
通过/d
可以实现跨盘符的操作 -
cd..
返回上一级 -
cd 目录名
进入某一文件夹 -
清理屏幕上所有代码
cls
-
退出终端
exit
-
查看电脑ip
ipconfig
-
打开应用
calc msprint notepad
-
ping命令(可以得到某网站的ip地址)(测试网络是否正常)
ping www.baidu.com
-
创建文件夹
md test
-
创建文件
cd>c.txt
-
删除目录:需要先删除文件 del a.txt
删除目录
cd..
//回到上一级rd text
-
查看Java版本
java -version
-
直接在文件夹导航栏中,在地址前输入CMD + 空格,即可打开CMD
Java基础补充
这一部分已略去与c语言重复的部分,仅针对Java特有的部分进行学习。
Math类
包机制
为了更好地组织类 ,Java提供来包机制,用于区别类名的命名空间(类似于 文件夹,不同的文件夹之间可以存在同名文件)。
包语句的语法:
package pkg1[.pkg2[.pkg3...]];
命名规范:一般使用公司域名倒置作为包名com.baidu.map
com.baidu.zhidao
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包(IDEA可以添加)。使用import语句
即可完成此功能
import package1[.package2...].(classname|*);
平时如果使用了某个类,但未导入其包,会报错。此时将光标放于报错点上,按第一个推荐建议导入类
即可
如果某个包下包含的东西太多,需要一次性导入大量类:
import com.kuang.base.*;
//“ * ”表示通配符,代指全部。类似于SQL语句
JavaDoc生成文档
javadoc命令是用来生成自己API文档的
java -encoding UTF-8 -charset UTF-8 Doc.java
//此为命令,在CMD中,在目标文件的目录下执行
//效果:生成一个Index.html文件,是一个API文件
//为了保证中文字符串及注释不显示为乱码,添加两个UTF-8
如何使用IDEA生成javadoc文档?
工具(Tools)→ 生成JavaDoc →
Java流程控制
用户交互Scanner
java.util.Scanner:通过Scanner类来获取用户的输入
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般使用hasNext()和hasNextLine()判断是否还有输入的数据
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器的对象,用它来接受键盘数据:
Scanner scanner = new Scanner(System.in);
//新建一个Scanner对象,并以System.in为参数,最后将其封装到一个Scanner对象中
System.out.println("使用next方式接受:");//提示用户进行输入
//判断用户有没有输入字符串
if (scanner.hasNext()) {
//接受用户的输入
String str = scanner.next();
System.out.println("输入的内容为:" + str);
}
scanner.close();
//使用结束后最好将其关闭。
// I/O流的工具,如果不主动关闭,就会一直占用资源
}
}
对比hasNext()
、hasNextLine()
:
如果输入hello world
(中间包含空格),只会输出hello
将hasNext()
改为hasNextLine()
来接受数据,即可输出hello world
next()
不能得到含有空格的字符串;nextLine()
可以返回敲下空格之前的所有内容。
Scanner进阶
Scanner对于整数和小数也有支持(通过Scanner内的方法实现)
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数:");
int i=0;
float j=0.0f;
if(scanner.hasNextInt() ){
i=scanner.nextInt();
System.out.println("输入的整数为:"+i);
}
else
{
System.out.println("输入的不是整数!");
}
//通过改变if判断句中scanner的方法实现判断输入的数据类型
//scanner.hasNextFloat()..判断输入的是否为小数。
//对于定义的数据类型的初始值,需要注意在long和float后加上l和f
scanner.close();
}
}
小练习:
可以输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
public class Demo03 {
public static void main(String[] args) {
//可以输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
Scanner scanner=new Scanner(System.in);
double sum=0;
int m=0;
System.out.println("请输入数据:");
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
m++;
sum+=x;
System.out.println("你输入了第"+m+"个数据,当前的运算结果为:"+sum+"终止输入请输入0");
}
System.out.println("你输入的数据个数为:"+m);
System.out.println("数据的和为:"+sum);
System.out.println("数据的平均值为:"+(sum/m));
scanner.close();
}
}
顺序结构
基本结构
选择结构
if单选择结构
if双选择结构(if else)
if多选择结构(if elseif else)
嵌套的if结构
switch多选择结构
switch(expression){
case value1 :
//语句
[break;]
case value2 :
//语句
[break;]
[default :]
}
循环结构
while循环
do while循环
for循环
增强for循环
(主要用于遍历数组和集合对象)
基本语法结构:
for(声明语句:表达式)
{
//代码语句
}
实例:(也可以改写为普通for循环)
public class Demo04 {
public static void main(String[] args) {
int[] numbers= {1,2,3,4,5};//定义数组
//遍历数组的元素,并将其赋给x
for(int x:numbers){
System.out.println(x);
}
}
}
break、continue、goto
break强行退出整个循环,不执行剩余语句;
continue终止某次循环过程,跳过循环体中剩余语句,并进行下一次是否执行循环的判断;
Java没有goto,但通过break、continue带标签可以体现goto
Java 方法
方法的定义与调用
例子
System.out.println();
-
System
:系统的类 -
out
:System
下的一个输出对象 -
println
:一个方法
方法是语句的集合,一起执行一个功能。方法是解决一类问题的步骤的有序集合,包含于类或对象中,在程序中创建、在其他地方引用。(类比c中的函数)
回顾:方法的命名规则
- 第一个单词的首字母小写,第二个单词的首字母大写
public static void mian(String[] args){
int sum = add(1,2);
System.out.println(sum);
}
//假发
public static int add(int a, int b){
return a+b;
}
//在自己编写的函数首部需要添加static,否则无法在此处的main方法中直接使用
//在没学对象之前,此处暂时使用static
方法的规范化定义:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体的语句
...
return 返回值;
}
-
修饰符:public、static、final(可选,可不填)
-
返回值类型:数据类型。如果没有返回值,记为void
-
方法名:(命名规范:驼峰)
-
参数类型:实参(实际调用时输入的参数)/形参 (在创建方法时定义的参数名)
-
return:如果存在返回值,一定要return;如果是void,则不需要return
return 0:在某些特殊的方法下,使用return结束方法。
拓展了解:值传递(Java都是值传递)与引用传递(c语言中曾经讲过)
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。
方法的重载
重载是在一个类中,有相同的函数名、但形参不同(数据类型不同、形参个数不同)的函数。
方法重载的规则:
- 方法名称必须相同
- 参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)
- 方法的返回值可以相同或不同
- 仅仅返回值不同,不可以作为方法的重载
**实现原理:**方法名称相同时,编译器会根据调用犯法的参数个数、参数类型等去逐个适配,以选择对应的方法。如果匹配失败,则编译器报错。
命令行传递参数
(了解即可)