大家好,没错,又是我------sao里sao气的浩哥,又来了!拖了很久的技术文终于复更啦,大家期待不?(不期待也别告诉我)
还是像以往那样,在开始正题之前,先扯扯谈吧~
从下图一(知乎数据)不难看出,此前发表的两篇文章都没有受到较多的关注。自己没日没夜写的文章却反响平平,当时的我难免有些沮丧,甚至开始质疑自己,写作风格是不是不太合适,以致于大家不喜欢?封面图是不是过于单调普通?标题是不是比较正经没趣?其实我在公众号的【每日箴言】中也曾提及过当时的感受(下图二)。
(附上【每日箴言】的查看方式。方式有两种,1.进入公众号,点击菜单栏中的『每日箴言』一项,可获取图片版;2.公众号内回复“每日箴言”,可获取文字版。)
当然,毕竟自己是乐观派,还是自我鼓舞了一番。接下来,在3月初发布的那篇文章,真的开始有了那么点起色,虽然说点赞量收藏量都不是很多,但这些都无所谓,重要的是,我取得了很大的进步,而且证明了我的风格大家也是可以接受的,以及我写的文章能让七百多号人看到,那种feel真的特别棒。
更让我欣喜的是,居然有读者催更了!
而且,某天无聊的我在搜索引擎上随便输了个“小声bbjava”,出来的前几个词条居然不是广告,也不是其他东西,而是我在几个平台上的文章!老实说,还是挺令人兴奋的嘿嘿,,,
总之,谢谢你们给我的信心与动力,我一定不会辜负你们的期待。
在这一讲里,我想要给大家分享的是在Java中,如何进行数据的输入与输出。
1
在上一讲中,我曾给了大家一段Java代码,让大家不必理解其中的含义,直接敲上去运行。
那么这一讲,在讲输入输出之前,我也给大家一段代码运行一波,不过这次我会配上粗略的解释,让大家初步了解一下Java代码的构造,这样能增加大家对Java语言的熟悉度,从而在接下来的阶段更好地理解其他的知识点。
就像你第一次上大学,在尚未踏入校门时,你肯定会先上网查查关于这所大学的资料、图片等等,也会找师兄姐事先了解一波,以便增加对它的熟悉度。等真正踏入校门,见到某某景点,你也能一下子说出它的名字。
以下介绍大家目前只需了解即可,以后会继续详细地说。来看下面这段代码~(可以自己试着运行一下)
public class Hello_Haoge {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("中国真是个伟大的国家");
Chinese zhong_guo=new Chinese();
zhong_guo.speak("我们是中国人");
}
}
class Chinese{
public void speak(String s){
System.out.println(s);
}
}
(大家如果把上述代码直接复制粘贴到eclipse里运行是会报错的哈,因为“Hello_Haoge”仅是我创建的主类的类名,你并没有这个类,因此要把它修改成你创建了的类名。)
下图就是图片版的介绍,看起来可能会有点乱,大家将就着看一下吧嘿嘿。
当然,文字介绍也少不了。
public代表的是存储权限,也叫访问权限。所谓访问权限,就是对象是否有权限去操作自己的变量或者使用类中的方法。Public的中文意思是“公有的”,顾名思义就是用它修饰的变量和方法能被对象操作。
那什么是方法呢?Java中的方法其实类似于C语言中的函数。它的定义包括两个部分:方法的声明和方法体。它可以帮助减少程序中的重复代码,让程序结构更加清晰。
System.out.println("中国真是个伟大的国家");
这一句其实是打印语句,也就是我们这一讲里要讲的输出语句,等下会详细讲到。
Chinese zhong_guo=new Chinese();
这句代码则是创建一个对象,对象名为zhong_guo。对象其实是类声明的变量,也就是说,它本质上也是一个变量,跟其他变量不一样的就是它是用类进行声明的,仅此而已。
zhong_guo.speak("我们是中国人");
对象名后接上方法名表示该对象调用这个方法,括号里的值则称为“实参”(即实际参数)。那么形参与实参的区别是什么呢?形参只是随便用一个变量进行代表的参数,而实参是实实在在的值,对象在调用方法时通常会把实参的值传递给该方法的形参。
举个通俗的例子吧,我们来看数学中的方程,如x+y=8。方程中的X与y就相当于形参,它们只是一个变量,而当我们想把x=3,y=5代入进去的时候,这个“3”和“5”就是实参了,是实实在在的值。
emmmm,上面的代码已经大致解释的七七八八了。大家可以来看如下这个图,了解一下Java程序的组成构造以及主类与类之间的关系~
2
上述可以说是对Java的一个小小的概况吧,不知道大家读完以后,Java有没有成为你们『熟悉的陌生人』了呢哈哈哈。(这时应该要传来萧亚轩的声音~)
下面我们继续!Java中如何对数据进行输入和输出操作呢?
首先,要进行输入操作,就需要用到一个Scanner类。
在使用这个类之前,我们要先导入这个类,还是那句话,“脑子被门夹的前提是有脑子”嘛。所以使用这个类的前提就是要先有这个类,那怎样才能有呢?就要靠导入了。
import java.util.Scanner;
(关于导包代码的解释以后再说,现在直接用就好啦)
然后我们用这个类创建一个对象,对象的创建方法上面已经说过,依葫芦画瓢就好,对象名随便起,输入嘛,这里我就起个input好了。
Scanner input = new Scanner(System.in);
括号里的System.in可以看做一个参数,这个参数表示键盘输入的内容。
因为咱们从键盘输入的数据是有多种类型的嘛,因此我们需要让对象调用一些方法来实现对这些数据类型的区分。
大家还记得之前讲过的Java的基本数据类型有哪些吗?
只要让input对象调用nextBoolean()、nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()等方法,就可以实现对数据类型的区分啦~
(方法名其实就是在对应的类型名面前加个next)
以int型数据为例,
int x = input.nextInt();
这句代码就表示把从键盘上读到的int型数据赋值给x这个变量。
好,输入讲完了,肯定要了解一下怎么输出了是吧?输出其实更简单。
输出的方式有两种。分别是System.out.println()与System.out.print();【JDK1.5以上版本也可以用System.out.printf();】
二者的区别是,前者输出数据后换行,而后者不换行。
有图有真相!
我们可以看到用了println输出的“一个发财的数字”,在输出完以后马上就换行了;而用print输出的“一个牛逼的数字”,输出完以后并没有换行,而是紧接着在后面输出“一个很憨的数字”,这就是他们的区别。
再举一个例子,让大家更加清楚如何进行输出吧。
例如,我想输出一句暧昧的话,那代码就应该是这样子滴。
System.out.println(“一句暧昧的话”);
或者
System.out.println(“一句暧昧的话”);
看到这里,可能有人会举手举脚表示抗议,浩哥,你玩文字游戏!你明明说你会输出一句暧昧的话,怎么就只打了“一句暧昧的话”这几个字?!
别急嘛老哥,现在不就来了。
System.out.println(“雨水说天空也会落泪,”+”玫瑰说爱情总会枯萎,”+”离别说寂寞无滋无味,”+”咖啡说活得习惯苦味,”+”路一走就累,雨一碰就碎,”+”只有你在我心里最珍贵。”);
“浩哥,你好骚~”
话说回来,你们知道上述这段代码为啥中间会有加号吗?
其实这个加号是个并置符号(类似于英语中的“and”),它可以将变量、表达式或者一个常数值、字符串并置在一起输出。
上述代码中,我只是觉得句子太长了,所以用“+”将它们断开,看起来更加美观清晰。它输出的结果与不添加“+”时的结果是一致的。
而
System.out.println("一个发财的数字:"+x);
这句代码则是通过“+”使字符串与变量x并置一起进行输出。
(区分字符串与变量的办法就是,字符串一般是带有双引号的,而变量没有)
3
最后最后,我把输入输出的用法整合进了一段代码中,大家可以动动手敲一敲运行一波,从而对输入输出有个更好的理解。
/*导入Scanner类*/
import java.util.Scanner;
public class Hello_Haoge {
/*主类*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("浩哥:你猜猜,高中60分语文作文里面,我最高拿过多少分?");
System.out.print("检验我和你缘分的时候到了:");
while(true){
/*用Scanner类创建一个名为input的对象*/
Scanner input = new Scanner(System.in);
/*区分所输入数据的类型,并赋值给变量score*/
int score = input.nextInt();
System.out.println("\n"+"浩粉:你这么菜,应该只拿过"+score+"分吧。");
if((score<=38)&&(score>=0)){
System.out.println("浩哥:不合格?你也太瞧不起我了吧。罚你点个在看");
}
if((score<=48)&&(score>38)){
System.out.println("浩哥:emmmm。还是有点低");
}
if((score<60)&&(score>48)&&(score!=57)){
System.out.println("浩哥:很接近很接近了!");
}
if(score==57){
System.out.println("浩哥:我去!你简直就是我肚子里的蛔虫啊!这都让你猜到了!");
break;
}
System.out.println("\n"+"浩哥:继续猜,猜不对不给你吃鸡腿");
System.out.print("检验我和你缘分的时候又到了:");
}
}
}
提醒一下哈。为了弄出一个稍微有趣点的互动效果,以上代码中涉及到一些目前尚未提及的知识,大家可以先把能看懂的看看,看不懂的也可以激发学习后面知识点的兴趣嘿嘿。
还有就是,大家如果把上述代码直接复制粘贴到eclipse里运行是会报错的哈,因为“Hello_Haoge”仅是我创建的主类的类名,你并没有这个类,因此要把它修改成你创建了的类名。
以下是运行结果截图。
PS:
关注【码界萤火虫】,公众号内回复“作文1”“作文2”可查看浩哥拙作。记得点个在看满足我小小的虚荣心哦。
部分资料参考:《Java面向对象程序设计(第2版)》,维基百科,搜狗百科