文章主要内容:
初始函数方法的调用、println()的拓展、markdown语法、nextLine()和next()方法的区别
一.初识方法调用
public class Test2{
public static void main (String[] args){
t2(); //t2为静态方法 静态方法的调用是通过类名来调用的 可直接用
Test2 out=new Test2(); //t2为静态方法 也可通过对象来调用
out.t2(); //等价于上面的t2();
out.t3(); //创建了out对象后可以反复使用out
/*int a=t3(); //错误: 无法从静态上下文中引用非静态 方法 t3()
System.out.println("a");*/
int a=out.t3();
int b =out.t4(); //通过out引用非静态方法t3();
System.out.println(a+10);
Test2 in=new Test2();//非静态方法需通过对象来调用,这里的in相当于out
in.t3();
}
Test2 in=new Test2();//非静态方法需通过对象来调用,这里的in相当于out
in.t3();
}
public static void t2(){ //静态且无返回值
System.out.println("t2");
}
public int t3(){ //非静态有int类型的返回值
int a=0;
System.out.println("t3");
return a;
}
public int t4(){
int a=100;
int b=t3();//在同类中,非静态方法可以直接调用静态方法与非静态方法。!!!
System.out.println("t4");
return a;
}
}
总结:
1.静态方法调用非静态方法,无论是否在同一类内,均需要通过对象调用
2.如果不在一个类当中,静态方法调用其他类中的静态方法,必须通 类名.静态方法
3.调用不在同一类的的需要调用包
参考链接:https://www.imooc.com/article/13423
二.对print的拓展:
1.System.out.println();输出且自动换行
2.System.out.print();输出不会换行
3.System.out.printf(); 同C语言使用方法
三.markdown语法的使用
概念 | 效果 |
---|---|
1. 要加粗文本,请在单词或短语的前后各添加两个星号或 下划线 ** ? **或__ ? __ | nihao |
2. 要用斜体显示文本,请在单词或短语前后添加一个星号或下划线 * ? *或_ ? _ | nihao |
3.斜体且加粗就请在单词或短语前后添加三个星号或下划线 ** * ***或_? _ | nihao |
-
要创建块引用,请在段落前添加一个
>
符号nihao
5.块引用可以嵌套。在要嵌套的段落前添加一个 >>
符号
niao
nihao
6.要创建无序列表,请在每个列表项前面添加破折号 (-)、星号 (*) 或加号 (+)
-
-
-
-
-
-
7.要将单词或短语表示为代码,请将其包裹在反引号 (` `)
8.码的单词或短语中包含一个或多个反引号,可通过将单词或短语包裹在双反引号(````)中。就如7所示。
9.要创建分隔线,请在单独一行上使用三个或多个星号 (***
)、破折号 (---
) 或下划线 (___
) ,并且不能包含其他内容。
10.图片: “!”+"[名字]"+"(地址)"
11.要显示原本用于格式化 Markdown 文档的字符,请在字符前面添加反斜杠字符 \
- nihao
- + nihao
12.```加所需语言就会有代码块出现
13.超链接: "[ 名字 ] “+”( 地址 ) "
四 .Scanner中nextLine()方法和next()方法的区别
1.初次认识
-
next()在输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束
-
nextLine()方法的结束符只能是Enter键
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入字符串(nextLine):");
String str1 = scanner.nextLine();
System.out.println(str1);
System.out.println("请输入字符串(next):");
String str = scanner.next();
System.out.println(str);
}
}
经有空格和无空格测试后发现 next()确实只能输出空格前的字符。
- 2.进一步了解
next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。
nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。
- 3.学习补充:nextline()读取回车问题的具体和解决方法
nextLine()读取回车问题: 我们在使用java读取键盘输入时,如果先读取一个int变量,再读取下一行的字符串时,会发现程序运行结果与预期不符,程序并没有读取到下一行的字符串。
如:
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String s=sc.nextLine();
因为 我们使用键盘输入的时候,其实输入了三部分:数字 、回车(enter)、字符串 问题的原因是nextLine()方法没有读取到我们的字符串,而是读入了我们的Enter换行符.
解决方法:
1.将nextLine()换成next(); //因为next()方法在读取内容时,会过滤掉有效字符前面的无效字符
2.使用一个nextline()读掉换行符:
Scanner in=new Scanner(System.in);
int n=in.nextInt();
in.nextLine();//将换行符读掉
String s=sc.nextLine();
3.重新创建Scanner对象:
Scanner sc1=new Scanner(System.in);
int n=sc1.nextInt();
Scanner sc2=new Scanner(System.in);
String s=sc2.nextLine();
这样在读取完n之后,换行符会被丢弃,下一行被视作sc2开始读入的位置
实际运用我会放在下一篇博客————基于控制台设计简易打折与累加计算器