1.方法重载举例
System.out.println(); System.out.println("Java"); System.out.println(5); System.out.println(3.14); System.out.println(true); System.out.println(to);2.概念:一个类中的一组方法,相同的方法名字,不同的参数列表,这样的一组方法构成方法重载。参数列表不同体现在哪里?参数的个数、参数的类型、参数的顺序 3.作用:为了使用者便于记忆与调用,只需要记录一个名字,执行不同的操作。 4.自己也可以设计方法重载 调用方法的时候可以通过方法名字定位方法,如果方法的名字一致,可以通过参数的数据类型定位方法,如果没有与传递参数数据类型一致的方法,可以找一个参数类型可以进行转换。 5.JDK1.5版本之后出现了一种新的写法 int…x:动态的参数列表,类型固定,个数可以动态0…n都可以,x本质上就是一个数组,有length属性、有index下标,动态参数列表的方法(不能与相同意义的数组类型的方法构成方法重载),本质是一样的。动态参数列表的方法可以不传参数,相当于0个,数组的方法必须传递参数。动态参数列表在方法的参数中只能存在一份,且必须放置在方法参数的末尾。 6.类的内部成员 属性——静态描述类的特征(变量、存值) 方法——动态描述类的行为(做事情) 构造方法——用来创造当前类的对象(方法很特殊) 代码块——理解为就是一个方法(非常特殊,无参数、无返回值、无名字) 7.构造方法
作用:只有一个,构造当前类的对象用法:通过new关键字调用特点: (1)每一个类都有构造方法,若自己在类中没有定义,系统会默认提供一个无参数的构造方法。若在类中自己定义了构造方法,则默认无参数的构造方法即被覆盖。 (2)构造方法是否存在方法重载?——存在构造方法重载每一个类都有构造方法 若不定义,系统会默认提供构造方法为什么要定义构造方法?什么时候需要设计构造方法? 在创建对象的同时,想要一并做了一些事情,默认提供的构造方法是不会做的,这个时候我们可以自己定义构造方法(无参数的构造方法内做事,也可以带参数的) 8.this关键字 this关键字的使用:[构造方法中,属性与变量重名,必须一个代替词代替对象] (1)是一个关键字,代替的是某一个对象(当前调用属性或方法时的那个对象) (2)this既然代替的是一个对象 this可以调用属性、方法,在一个构造方法中可以调用另一个构造方法,通过this();省略了构造方法的名字(必须与类名一致),必须在另一个构造方法中调用,必须在程序的第一页。构造方法一般优于一般方法,在一般方法中不能调用构造方法。 (3)this调用属性或方法这一行代码可以放置在类中任何成员位置,上下顺序随意 (4)方法之间不可以互相调用(编译好用),应为可能会发生StackOverflowError栈溢出错误。 (5)构造方法不能来回互相调用(编译出错) 9.关于Scanner类及其中方法的使用 (1)导包 java.util (2)创建对象 Scanner scanner = new Scanner(System.in); (3)做事情 int value = input.nextInt();String value = input.nextLine(); (4)读取方式:除了nextLine以外其余的方法都不读取回车符 (5)读取返回结果: nextInt ——> int nextFloat——>float next——>String nextLint——>String next方法看到回车或空格都认为读取结束,即输入ABC def 输出ABC //举例 Scanner scanner = new Scanner(System.in); System.out.println("请输入密码:"); int password = scanner.nextInt(); sacnner.nextLine();//解决办法3 System.out.println("请输入账号"); String name = scanner.nextLine(); Syste.out.println(name); System.out.println(password); //输出结果中name为空。应为password输入为数字加回车符,而nextInt方法不读取回车符 //将数字读取后只剩下回车符。但是name方法读取会读回车符及回车符之前的,而回车符之前 //什么也没有,所以name输出为空 //======================================================================= //解决方法 1、利用nextLine方法读取所有的属性 2、利用next方法读取字符串(不能有空格) 3、在方法中在加入nextLine方法