您现在的位置是:首页 > 文章详情

Java小白进阶笔记(4)-流程控制语句

日期:2018-04-19点击:475

继续学习:
5.偏头痛杨的Java入门教学系列之流程控制语句篇

详细的去看原文,这里分割线中摘录一些我觉得对新手比较重要的概念(也容易混淆)。


方法的种类

1.实例方法

属于每个实例的方法,必须使用对象来调用,方法前不要加static修饰。

2.类方法

属于类的方法,必须加static修饰,使用类名调用(当然类方法也可以使用实例调用,但是不建议这么做),为什么要用类名来访问一些方法呢?因为不耗费内存,不用创建实例。

3.构造方法/构造器(Constructor)

构造方法是一个类创建对象的根本途径,如果一个类没有构造方法,这个类通常无法创建实例。
因此如果程序员忘记定义构造方法的话,Java编译器将会为该类提供一个默认构造方法(无参的构造方法),一旦程序员已经定义了构造方法,则系统不再提供默认的构造方法。(注意:如果程序员定义了一个有参构造,系统也不再提供默认的无参构造)当然,如果你也想使用无参数构造方法,就可以自己手动写一个。

构造方法的作用

  • 通过new关键字来调用某个类的构造方法,即可创建这个类的实例。在创建一个对象(类实例化成对象)的时候,至少要调用一个构造方法。
  • 构造方法的作用是完成对象的创建,即完成对象的实例化,在构造方法中一般可以对成员变量进行初始化

构造方法的特点

  • 构造方法的名称必须与类同名
  • 一个类可以有多个构造方法(参数列表不同)
  • 构造方法没有返回类型,不能return
  • 构造方法可以设置为private即在外部无法调用该类的构造方法(单例模式)

方法的重载(overload)

  • 方法的重载就是在同一个类中允许同时存在一个以上同名的方法。
  • 方法名称相同,方法的参数必须不同,参数个数不同,参数类型不同,方法的返回值类型可以相同,也可以不同。

类变量与实例变量

类变量

  • 也叫静态变量
  • 说明类的属性
  • 类变量声明在类中,方法体之外,必须声明为static类型
  • 类变量在创建类时被初始化
  • 类的所有示例变量在调用该变量的时候共享一块内存空间,可以类名直接调用,也可拿对象调用(不推荐)

实例变量

  • 说明类的一个实例的属性
  • 实例变量定义在类中,方法体之外,不声明成static类型
  • 实例变量在创建对象的时候被初始化
  • 类所有实例调用该变量的时候都开辟一块新内存,只能拿对象调用实例变量。

局部变量

  • 在方法内、代码块内、形参中定义的变量被称为局部变量
  • 所有局部变量均在方法的栈内存中存储
  • 方法、代码块结束后,变量就会自动销毁。
  • 部变量的作用范围越小,它在内存里停留的时间就越短,程序运行性能就越好。因此能用代码块局部变量的地方,就不要使用方法局部变量
  • 访问修饰符不能用于局部变量

作业

  1. 编写一个方法,需要传1个整型变量作为参数,方法中先把参数输出,再判断参数为偶数就返回true,非偶数返回false。在main方法中调用该方法3次,分别传入参数为3、4、5,并将方法的返回值输出。

代码:

package test; import java.util.Scanner; public class Getodd { public static boolean judge(int tem) { if(tem%2==0) { return true; } else { return false; } } public static void main(String [] args) { Scanner sc=new Scanner(System.in); for(int i=1;i<=3;i++){ int tem=sc.nextInt(); boolean ans=judge(tem); System.out.println("the"+i+" 's ans: "+ans); } } } 

输出:

3 the1 's ans: false 4 the2 's ans: true 5 the3 's ans: false 
  1. 编写一个方法,需要传入2个整型变量作为参数,方法中返回数值较大的参数,在main方法中调用该方法几次,参数自定义,并将方法的返回值输出。

代码:

package test; import java.util.Scanner; public class WhoIsMax { public static int judge(int a,int b) { if(a>b) { return a; } else { return b; } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); for(int i=0;i<3;i++) { int a=sc.nextInt(); int b=sc.nextInt(); int ans=judge(a,b); System.out.println("the max between "+a+" and "+b+" is "+ans); } } } 

输出:

2 3 the max between 2 and 3 is 3 5 8 the max between 5 and 8 is 8 99 22 the max between 99 and 22 is 99
  1. 编写一个方法,需要传入1个整型变量作为参数,方法中使用switch做判断,如果参数值为1则输出"星期一",如果参数值为2则输出"星期二",依此类推,如果参数值不在1-7的范围内则输出"参数错误",在main方法中调用该方法几次,参数自定义。

代码:

package test; import java.util.Scanner; public class DateShow { public static void judge(int tem) { switch(tem) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; case 4: System.out.println("Thursday"); break; case 5: System.out.println("Friday"); break; case 6: System.out.println("Saturday"); break; case 7: System.out.println("Sunday"); break; default:System.out.println("Wrong input!"); } } public static void main (String [] args){ Scanner sc=new Scanner(System.in); for(int i=0;i<3;i++) { int tem=sc.nextInt(); judge(tem); } } }

输出:

3 Wednesday 5 Friday 9 Wrong input!
  1. 编写一个方法,打印出一个菱形(这道题比较难,不允许搜百度上的答案)。
 * *** ***** ******* ***** *** *

友情提示

  • System.out.println();输出是带换行的
  • System.out.print();输出是不带换行的
  • 需要使用嵌套for循环
  • 一个循环输出空格,一个循环输出星号;一个循环输出换行

代码:

package test; import java.util.Scanner; public class DrawPic { public static void drawPic(int num) { int half=num/2+1; for(int i=0;i<half;i++) { for(int j=0;j<half-1-i;j++) { System.out.print(' '); } for(int k=0;k<2*i+1;k++) { System.out.print('*'); } System.out.println(); } for(int i=0;i<half-1;i++) { for(int j=0;j<i+1;j++) { System.out.print(' '); } for(int k=0;k<num-2*(i+1);k++) { System.out.print('*'); } System.out.println(); } } public static void main(String [] args) { Scanner sc=new Scanner(System.in); int tem = sc.nextInt(); drawPic(tem); } }

输出:

17 * *** ***** ******* ********* *********** ************* *************** ***************** *************** ************* *********** ********* ******* ***** *** *
原文链接:https://yq.aliyun.com/articles/583747
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章