方法重载、构造方法、this关键字的使用与Scanner类的用法

本文主要内容:

*方法重载的相关知识
*构造方法的使用
*this关键字的使用
*Scanner类及其方法的使用

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方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值