知识点的总结:

1.类中的方法分为两类:1.普通方法; 2.构造方法。

2.构造方法的格式:
  public 类名(数据类型  参数名,...){
 }

3.构造方法的用途:
  1.实例化对象。
  2.初始化属性值。

4.构造方法和普通方法的区别:
  1.返回值:构造方法一定不能定义返回值类型;构造方法的名字必须要和类名完全一致,包括大小写。
  2.用途
  3.名字

5.注意:java会给类提供一个无参数的构造方法(默认构造方法),如果你在类中定义了构造方法,
  默认的构造方法会被覆盖,无法在使用默认的,只能使用你自定义的构造方法。

6.方法重载的条件:
  1.方法名必须要完全一致;
  2.方法所带的参数个数、参数顺序、参数类型至少一个不同。

例如:

protected int study(int s){
score += s;
System.out.println(name+"的学分是"+score);
return 0;
} public void study(){
score++;
System.out.println(name+"正在学习中,学分是"+score);
}

7.现实生活中什么样的情况要使用方法重载呢?
  普通方法的重载情况:
   学习开车、学习打游戏
  构造方法的重载情况:
   贾宝玉出生的时候带通灵宝玉,其他的角色是不需要带通灵宝玉。

8.调用重载后的方法是由调用方法时所给的参数决定的。

public static void main(String[] args) {
niming stu = new niming ("张三",3);
stu.study();
niming stu2 = new niming ("李四",3);
stu2.name = "李四";
stu2.study(10); }

9.当你参数名和属性名完全一致的情况下,给属性名加上"this.",这样才会表示属性,否则表示的是参数。(因为就近原则,就近的是参数,而不是属性)
  this表示的是的当前调用方法的对象。
  假设a对象名在调用方法,那么方法中this就表示a对象。

public niming(String name,int score){
this.name = name;
this.score =score ;
}

实例:

package s522;

public class Role {
public String name;
public int blood;
public int attack;
//定义一个构造方法
public Role(String name,int blood,int attack){
this.name=name;
this.blood=blood;
this.attack=attack;
}
public void PK(Role role) {
role.blood -= attack;
System.out.println(name + "正在攻打" + role.name + "," + role.name
+ "剩余血量是:" + role.blood);
}
public static void main(String[] args) {
Role a1 = new Role( "奥特曼A",100,5);
Role a2 = new Role("奥特曼B",100,5);
Role m1 = new Role("小怪兽A",100,3);
Role m2 = new Role("小怪兽B",100,3);
while (a1.blood > 0 && m1.blood > 0) {
a1.PK(m1);
if (m1.blood <= 0) {
System.out.println(a1.name + "胜利!");
break;
}
m1.PK(a1);
if (a1.blood <= 0) {
System.out.println(m1.name + "胜利!");
break;
}
}
if (a1.blood > 0) {
while (a1.blood > 0 && a2.blood > 0) {
a1.PK(a2);
if (a2.blood <= 0) {
System.out.println(a1.name + "胜利!");
break;
}
a2.PK(a1);
if (a1.blood <= 0) {
System.out.println(a2.name + "胜利!");
break;
}
}
}
else {
while (m2.blood > 0 && m1.blood > 0) {
m2.PK(m1);
if (m1.blood <= 0) {
System.out.println(m2.name + "胜利!");
break;
}
m1.PK(m2);
if (m2.blood <= 0) {
System.out.println(m1.name + "胜利!");
break;
}
}
} } }

上面的方法用了构造法,没有用到方法重载,如果要用方法重载,思路是:写两个方法体,一个是奥特曼打小怪兽,一个是奥特曼打大boss.

// 普通方法重载
public void PK(String name) {
  /*
   * 这里表示的是:参数的血量=参数的血量-被攻击的能量。例如:a1.PK("小怪兽");
   *  则表示:小怪兽的血量=小怪兽的血量-奥特曼的攻击能量
   */
  this.blood -= attack;
  System.out.println(name + "正在攻打" + this.name + "," + this.name
    + "剩余血量是:" + this.blood);
 }
 // 普通方法方法重载
 public void PK(boss b) {
  b.blood -= attack;
  System.out.println(name + "正在攻打" + b.name + "," +b.name + "剩余血量是:"
    + b.blood);
 }public static void main(String[] args) {
boss a1 = new boss("奥特曼", 200, 5);
boss a2 = new boss("小怪兽", 100, 3);
boss m1 = new boss("大boss", 100, 3);
while (a1.blood > 0 && a2.blood > 0) {
a2.PK("奥特曼");
if (a1.blood <= 0) {
System.out.println(a2.name + "胜利!");
break;
}
a1.PK("小怪兽");
if (a2.blood <= 0) {
System.out.println(a1.name + "胜利!");
break;
}
}
if (a1.blood > 0) {
while (a1.blood > 0 && m1.blood > 0) {
a1.PK(m1);
if (m1.blood <= 0) {
System.out.println(a1.name + "胜利!");
break;
}
m1.PK(a1);
if (a1.blood <= 0) {
System.out.println(m1.name + "胜利!");
break;
}
}
}

运行的结果:

方法构造和方法重载之奥特曼与大boss之战的更多相关文章

  1. C# 继承实现父类方法、重写、重载

    继承是派生类(子类)去实现(重写<override>.重构<new>)基类(父类)的方法或属性.从而获取在派生类中要实现的功能. 子类调用父类构造方法,在父类中有个实现姓名和年 ...

  2. 第十一周总结 继承、this和super的区别和用法、方法的重写和重载

    一.继承 1.子类继承父类,通过一个关键字 extends 2.子类的对象可以调用父类中的(public protected)属性和方法 当作自己的来使用 3.子类可以添加自己独有的属性和方法 4.子 ...

  3. C#中隐藏(new)、方法重写(override)、重载(overload)的区别

    转自:http://www.cnblogs.com/glife/archive/2009/12/28/1633947.html 重载.重写和隐藏的定义: 重载:public string ToStri ...

  4. 方法重写和方法重载;this关键字和super关键字

    1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...

  5. [Java] String.Split 方法的6个重载函数

    String.Split 方法有6个重载函数: 程序代码 1) public string[] Split(params char[] separator) 2) public string[] Sp ...

  6. Java中方法重写和方法重载

     首先方法重写和方法重载是建立在Java的面向对象的继承和多态的特性基础上而出现的.至于面向对象的继承和多态的特性我就不在这里多说了.继承是指在一个父类的基础再创建一个子类,这样子类就拥有了父类的非私 ...

  7. Java方法、构造方法的重载;创建对象;调用方法

    方法的重载 概念:多个同名但是不同参数的方法称为方法的重载 作用:编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法 特点:方法名相同:同一作用域:参数不同:数量不同 类型不同 顺序不同 ...

  8. Java方法重写与方法重载

    方法重载:发生在同一个类中,方法名相同方法形参列表不同就会重载方法. 方法重写:发生在继承当中,如果子的一个类方法与父类中的那个方法一模一样(方法名和形参列表一样),那么子类就会重写父类的方法. 方法 ...

  9. C#中方法,方法声明,方法调用和方法重载!

      一,定义:方法是具有名称的可执行代码块. 二,方法的声明:声明方法的语法包括以下五个部分: 1,访问权限修饰符,这个是可选的参数,默认值是私有访问private,即只能从声明它的类的内部访问. 2 ...

随机推荐

  1. #9.5课堂JS总结#循环语句、函数

    一.循环语句 1.for循环 下面是 for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块) ...

  2. 使用React制作一个可配置的页面生成器[0]

    背景 上班两年多,终于来到一家互联网公司,告别之前的朝九晚六的腐败生活,开始了11116的码农之旅. 因为公司做的是直播相关的业务,所以伴随着直播,不定期的就会有运营活动-.- 但是这类活动留给码农的 ...

  3. MyEclipse快捷键大全

    MyEclipse 快捷键1(CTRL)Ctrl+1 快速修复Ctrl+D: 删除当前行Ctrl+Q 定位到最后编辑的地方Ctrl+L 定位在某行Ctrl+O 快速显示 OutLineCtrl+T 快 ...

  4. Android—基于Socket与上传图片到客户端

    最近项目中需要客户端和Socket互相传递数据时候需要相互传递图片所以做下总结以免以后忘记,也希望给大家带来帮助. 先上客户端的代码: 根据图片名称上传照相机中单个照片(此方法为自己封装) 参数所代表 ...

  5. 友盟SDK实现分享

    友盟SDK文档已经写得很详细了,这边整理笔记,先过一遍流程: 1⃣️注册友盟账号以获取Appkey,下面以分享到微信为例 2⃣️申请第三方账号是因为要进行分享.授权这样的操作肯定是要通过第三方的审核( ...

  6. Xcode插件优缺点对比(推荐20款插件)

    本文大致整理了自己用过的一些插件的使用感想(就是好不好用). 在那之前先简单贴两条插件须知,知道的可以忽略. 1.Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatra ...

  7. MVC MODEL Attribute 操纵速记

    目的: 扩充Attribute 任意读取并Render 需要的Attribute     用法: @Html.ParaLabelFor(x=>x.ServiceName):@Html.ParaN ...

  8. 自动化运维,远程交互从服务器A上ssh到服务器B上,然后执行服务器B上的命令。

    第一种: ftp -v -n 192.168.0.1 21 <<! user ftp ftp123 bay ! 第二种: { echo -e "\n" echo -e ...

  9. maven工程模块化

    前言 项目的模块化有利于任务分工,后期维护,易扩展,模块还可以独立成服务单独部署等: 创建packaging类型为POM的父项目 我用的maven插件是m2e,相信大部分人在eclipse装的也是m2 ...

  10. Win7 安装SQL SERVER 2012需要SP1补丁

    在操作系统Win7上安装SQL Server 2012时,报如下错误: 也就是说SQL Server 2012如要要安装在Windows 7 上,则至少需要安装SP1补丁.否则就会弹出上面提示信息.关 ...