JavaSE基础(day08)(1)成员方法的调用(2)构造方法和方法的重载(3)this关键字(4)方法的传参和递归调用(5)封装

默写:
1.简答题
写出类定义、成员变量定义、成员方法定义的语法格式。

  class 类名{
     数据类型 成员变量名;
     返回值类型 成员方法名(形参列表){
        方法体;
     }
  }

2.编程题
自定义Person类,成员变量有:姓名和年龄,要求在main()方法中创建对象并打印默认值,
修改姓名和年龄再次打印。

今天内容:
(1)成员方法的调用
(2)构造方法和方法的重载
(3)this关键字
(4)方法的传参和递归调用
(5)封装

1.成员方法的调用(重中之重)
1.1 语法格式

引用名/对象.成员方法名(实参列表);

如:
p.show(); - 表示使用引用p调用show()方法。

1.2 注意事项
(1)实参列表主要用于进行形参列表的初始化工作,因此需要与形参列表保持一致。
(2)保持一致体现在:参数的个数相同、类型相同、顺序相同。
(3)实际参数可以传递直接量、变量、表达式以及方法的调用等。

2.构造方法和方法重载
如:

  Person p = new Person();
  p.show();

2.1 构造方法(重中之重)
(1)语法格式

   class 类名{
       类名(形参列表){
           构造方法体;
       }
   }

如:

  class Person{
      Person(){
         //....
      }
  }   

(2)注意事项
a.构造方法的方法名称与类名完全相同,并且没有返回值类型,连void都不许有。
b.当使用new关键字去构造对象时,会自动调用构造方法来进行成员变量的初始化工作。

(3)默认构造方法
当一个类中没有自定义任何形式的构造方法时,编译器会自动添加一个无参的空构造方法,
该方法叫做默认/缺省构造方法,如:Person(){}
但若类中出现了自定义构造方法,则编译器就不再提供任何形式的构造方法。

练习:
自定义Point类,属性有:横坐标和纵坐标;行为有:无参构造、有参构造、打印所有属性的方法、实现横坐标加上参数指定数值的方法、实现获取横坐标的方法。
要求在main()方法中创建两个Point类的对象,使用有参构造的对象分别调用上述方法进行测试。

2.2 方法的重载(Overload 重点)
(1)基本概念
在同一个类中,方法名相同参数列表不同之间的方法构成重载关系。

(2)重载的主要形式
方法重载的主要形式为:参数的个数不同、参数的类型不同、参数的顺序不同,与参数的变量名以及返回值类型无关,但返回值类型最好相同。
方法之间能否构成的判断依据是:在调用方法时能否加以区分。
在java.io.PrintStream类中提供了print()/println()方法的各种重载版本。
如:

   int i = 0;
   System.out.println(i);
   char c = 'a';
   System.out.println(c);
   double d = 3.14;
   System.out.println(d);

(3)方法重载的意义
对于调用者来说,只需要记住一个方法名就可以调用各种不同的版本来实现不同的效果。

3.this关键字(重点)
如:

  class A{}
  class B{
     void show(A a){ ...}
  }
 
  A a = new A();
  B b = new B();
  b.show(a);

其中用于调用show()方法的对象b 叫做调用对象,其中作为实参传递的对象a 叫做参数对象

3.1 基本概念
对于构造方法来说,this关键字就表示当前正在构造的对象;
对于成员方法来说,this关键字就表示当前正在调用的对象;

注意:
当使用不同的对象调用同一个方法时,在方法体中的this始终代表当前正在调用的对象,访问成员变量时相当于this.的方式访问,this.相当于汉语中"我的",由于调用对象的不同导致this关键字不同,那么this.方式访问的成员变量也就随之不同。

3.2 使用方式
(1)当成员变量名与形参变量名相同时,可以使用this.的方式明确告诉编译器访问的是
成员变量而不是形参变量(重点)。
(2)在方法体中可以通过this.的方式访问成员变量/成员方法(熟悉)。
(3)在构造方法中的第一行可以使用this(实参)的方式调用本类中其他构造方法(熟悉)。

视频:
javaseday08-作业讲解和成员方法的调用-01
https://v.qq.com/txp/iframe/player.html?vid=j07975bl09v
javaseday08-构造方法的概念和使用-02
https://v.qq.com/txp/iframe/player.html?vid=q07979e0es5
javaseday08-构造方法和成员方法的使用-03
https://v.qq.com/txp/iframe/player.html?vid=c0797fiwr4f
javaseday08-方法的重载和this关键字概念-04
https://v.qq.com/txp/iframe/player.html?vid=c0797hklys0
javaseday08-this关键字的使用-05
https://v.qq.com/txp/iframe/player.html?vid=r0797zbbfhv

代码:
https://pan.baidu.com/s/1m79gYX92YsLLBXdJerrp4A
作业:
1.复习和理解面向对象的所有内容,重点代码至少敲3遍。
2.自定义Car类,属性有:品牌、颜色、轮胎数量;行为有:无参构造方法、有参构造方法、打印所有属性的方法,根据参数指定数值降价以及降价100元的两个重载方法、实现修改颜色和获取颜色的方法;
要求在main()方法中使用两种不同的方式构造两个对象,分别打印各自的属性并测试方法。
3.根据图片内容编写控制台版五子棋游戏,要求使用二维数组来模拟棋盘,并编写多个方法实现该游戏。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值