`
rita_ka
  • 浏览: 10937 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

构造方法总结

    博客分类:
  • Java
 
阅读更多



7.17. 构造方法总结


一.构造器方法

一个类中方法有两种: 1.一般方法
                                         2.构造方法

1、一般方法:


public 数据类型 方法名{
          方法体
}

2、构造器方法
public 类名(参数,...){
           //方法
}

实例化对象的格式:
类名 对象名 = new 类名();
类名 对象名 = new 类名(参数值,...);

构造方法的用途:
用来实例化对象的。 

    
Attention:1\构造器方法与一般方法的区别:构造器可以传入参数。

                  2\构造器方法:1.构造器方法没有任何返回值的定义
                                           2.必须与类名相同
                  3\构造器可以重载,主要用途:初始化对象某些属性值 


                 4\每个类都会有一个默认的无参构造器,如果重新写构造器,默认的
         会被覆盖


二.方法的重载

条件:1.类中,方法同名
           2.参数类型、数量和顺序不同

调用:必须根据参数来调用


三.this关键字

1.this 表示当前调用方法的对象
2.this.name = name;//区分属性和参数 ,this指向类对象本身。

                                     this.name 表示对类对象中的name赋值,后面的name是一个变量。
3.this("无名");//调用带一个字符串参数的构造方法
4.this一大用途:可以在构造器中调用自己的另外一个构造器 
5.this调用另外一个构造器时,调用的代码必须是第一行且只调用一次 

附上小许代码:

 

//构造时,初始化name,km属性值,符合第5点
     public Student(String name,int scro){
                 this(name,km,0);
}

//构造时,初始化name,km,scro属性值
      public Student(String name,String km,int score){
                 this.name = name;
                 this.km = km;
                 this.score = score;
}

四.值传递与引用传递

Java中数据类型分两类:

原始类型(8大基本类型):byte,short,int,long,char,float,double,boolean, 还有String【原始类型改变是只能局部变,不能全部都变,除非用static修饰】;

引用类型(类类型) :类,抽象类,数组,接口【引用类型变的时候,与之相关的数据都会变】。
      

1.值传递

     1、8大基本类型和String类型遵循值传递;
     2、如何传值?
      //入口函数中
int i = 100;
...
stu.changeInt(i);
 
      //类中
public void changInt(int s){
s++;
}

i是保存在内存的栈里面。
s保存在栈里面用完就会自动销毁


2.引用传递

     1、引用类型:类,抽象类,接口,数组 
     2、如何传递
        //入口函数中
Student st1 = new Student();...
st1=st2;
st2=st3;
st3=st1;

最后得到st3 = st2;

     VI:1.对象本身存在栈里,指向自己的属性,行为,得到首地址,存在栈中;
          2.st1=st2 时,st1指向st2,得到st2的地址,存在st1中
          3.st3指向st1时,得到st2地址,就得st3 = st2



/**********************************************************/

练习:回合制游戏:奥特曼和小怪兽要战斗,奥特曼还可以和Boss进行战斗,直到一方的血量为0的时候结束战斗,输出谁胜利了!

思路分析:

分析:

对象:凹凸曼,小怪兽,Boss.
特征:名字,血量,
行为:战斗

重点:奥特曼和小怪兽要战斗,奥特曼还可以和Boss进行战斗

1、用构造器,构造3个角色,初始化他们的名字、血量;
2、分别定义、得到他们的名字,血量。
3、在奥特曼类里用重载的方法重载Fight方法,参数分别为小怪兽和Boss的对象; 在小怪兽和Boss类里面Fight方法只用奥特曼对象做参数
4、定义入口函数。

/**********************Aotoman类************************************/

//定义一个Aotoman类
public class Aotoman{

//Aotoman 名字属性
private String Name ;
//Aotoman 血量属性
private int Blood ;

    
     //构造时,初始化Name,Blood属性
     public Aotoman(String n,int b){
             Name = n;
             Blood = b;
}

     //定义一个定义、得到名字的方法
     public void setName(String m){
             Name = m;
}
     public String getName(){ 
             return Name;
}

     //定义一个定义、得到血量的方法
public void setBlood(int c){
             Blood = c;
}
     public int getBlood(){ 
              return Blood;
}

       //定义一个打Boss方法   
  public void Fight(Boss Bo){
          Bo.setBlood(Bo.getBlood()-1);
         System.out.println(Bo.getName()+"被击中,血量减1");
}

//定义一个打Monster方法  
public void Fight(Monster Mo){
       Mo.setBlood(Mo.getBlood()-1);
      System.out.println(Mo.getName()+"被击中,血量减1");
  }
}


/**************************Boss类********************************/

//定义一个Boss类
public class Boss{


//Boss 名字属性
private String Name = "未知姓名";
//Boss 血量属性
private int Blood = 10;

    
     //构造时,初始化Name,Blood属性
     public Boss(String n,int b){
                Name = n;
                Blood = b;
}

     //定义一个定义、得到名字的方法
     public void setName(String m){
              Name = m;
}          
     public String getName(){
              return Name;
}

     //定义一个定义、得到血量的方法
     public void setBlood(int c){
               Blood = c;
}
     public int getBlood(){
              return Blood;
}

     //定义一个打Aotoman方法  
     public void Fight(Aotoman Ao){ 
                      Ao.setBlood(Ao.getBlood()-1);
                     System.out.println(Ao.getName()+"被击中,血量减1");
   }  
}

/*************************Monster类*********************************/

//定义一个Monster类
public class Monster{

//Monster 名字属性
private String Name = "未知姓名";
//Monster 血量属性
private int Blood = 10;

    
     //构造时,初始化Name,Blood属性
     public Monster(String n,int b){
           Name = n;
           Blood = b;
}

     //定义一个定义、得到名字的方法
     public void setName(String m){
             Name = m;
}
     public String getName(){
            return Name;
}

     //定义一个定义、得到血量的方法
     public void setBlood(int c){
           Blood = c;
}
     public int getBlood(){
           return Blood;
}

     //定义一个打Aotoman方法  
     public void Fight(Aotoman Ao){

            Ao.setBlood(Ao.getBlood()-1);
            System.out.println(Ao.getName()+"被击中,血量减1");

   }
}

/*************************入口函数*********************************/

//定义一个入口函数

public class Manager{

public static void main(String [] args){

        Aotoman Ao = new Aotoman("奥特曼",10);
        Monster Mo = new Monster("小怪兽",10); 
        Boss    Bo = new Boss("大波士",10);

              Ao.Fight(Bo);
             Ao.Fight(Mo);
             Bo.Fight(Ao);
             Mo.Fight(Ao);

for(int i=0;i<5;i++){
      Ao.Fight(Bo);
}

for(int j=0;j<9;j++){
      Mo.Fight(Ao);
}

if(Ao.getBlood()<=0){
            System.out.println(Mo.getName()+"和"+Bo.getName()+"赢了!");
}

else if(Bo.getBlood()<=0||Mo.getBlood()<=0){
             System.out.println(Ao.getName()+"赢了!");
      }
   }
}

/**********************************************************/


遇到的问题: 奥特曼可以跟2个人对战

解决:用重载的方法。重载Fight方法,参数对象不一样而已

心得:很有种感觉自己很蠢~ 本以为重载是很牛B轰轰的~ 发现原来就是这样子的。 就是换个参数而已~  其他代码跟上次作业是差不多的。 

 

结论:不要把很多东西都看得太复杂~~ 那是无益的。




   

 

分享到:
评论

相关推荐

    类和对象、构造方法总结

    NULL 博文链接:https://swac.iteye.com/blog/1972827

    Java的构造方法

    Java的构造方法 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建...

    java方法总结(重载,构造方法,调用方法)

    构造方法 方法的定义 在java中称为‘方法’,在C中称为‘函数’ java方法是语句的集合 用于执行一个功能 包含于类和对象中 可以被引用 方法的格式 访问权限 [修饰符] 返回值类型 方法名(参数列表){ ... 方法体 .....

    java构造方法的作用总结

    在本篇文章里小编给大家整理了关于java构造方法的相关知识点以及实例代码,有需要的朋友们可以学习下。

    理解构造器--构造器和方法的区别

    理解构造器--构造器和方法的区别 要学习Java,你必须理解构造器。因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区别。  我们说构造器是一种方法,就象讲澳大利亚的...

    Java面向对象总结

    调用子类的构造方法时,会先调用父类的构造方法。默认隐式调用父类无参数的构造方法 4.如果要在子类的构造方法中显式调用父类的构造方法。使用super(参数列表),但是这行代码必须是在 子类的构造方法的第一行。

    二维随机溶洞介质模型的一种构造方法

    为了真实描述地下溶洞介质的特点,提出了一种能确定二维随机溶洞介质模型的总孔隙度的构造方法。通过对现有的几种典型二维随机介质模型的优缺点进行总结,给出压制建模过程中的离散误差的窗函数,构造不同种类的随机...

    String、StringBuilder和StringBuffer简单分析.md

    javase部分String的相关基础知识,String的构造方法总结比较以及各自的应用场景(代码举例),常用的容器类StringBuilder和StringBuffer的关系比较(图示)以及两者的区别联系和具体哪中场景下用哪个类。

    个人java总结笔记

    通过Class 对象获得类的指定成员,构造方法 构造方法: Constructor 成员方法: Method 成员变量:Field Class对象.getConstructor(参数类型的Class对象 如 String.class); 获得指定参数的公共构造方法 Class对象....

    不变矩构造方法的研究

    在7 个经典不变矩基础上,总结出基不变矩的一般构造规律,提出了一种新的推导不变矩的重要方法 ———三角函数分解法,导出了多个新的不变矩表达式,提出了不变矩空间的概念,讨论了不变矩在图像反转变 换下的特性. 利用...

    论文研究-Vague熵的构造方法再研究.pdf

    通过对Vague集的模糊来源的本质分析,指出现有模糊熵构造方法的不足,总结出综合未知度和模糊度的Vague熵的公理化定义,利用加权提出了Vague集上一种新的模糊熵计算公式,并通过定理证明和实例对比分析,说明它不仅...

    Java复习总结四(详细,干货)快速学懂面向对象和构造方法

    多态性:多态性指的是在程序中允许出现重名的现象,它指在一个类中定义的属性和方法被其它类继承后,他们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中有不同的语义。 面向过程和...

    JAVA基础知识精华总结 收藏

    (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且...

    SolidWorks螺纹绘制的方法总结

    SolidWorks螺纹绘制的方法总结,各种螺纹建模方法都有哦

    Java构造器和方法的区别

    因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区别。  原作者:Robert Nielsen 原站:www.javaworld.com  我们说构造器是一种方法,象讲澳大利亚的鸭嘴兽是一种...

    Java中反射的常用方法总结

    在反射中,我们需要得到的是构造方法、成员方法、成员变量 得到这些的前提是得到.class文件的类对象 1.Class 1.Class类的静态成员方法,通过完整的包名.类名获取对应.class文件的Class对象 Class Class.forName...

    Java 基础核心总结.md

    Java 基础核心总结 - Java 基础核心总结 - Java 概述 - 什么是 Java? - Java 的特点 - Java 开发环境 - JDK - JRE - Java 开发环境配置 - Java 基本语法 ... - 构造方法 - 方法重载 - 方法的重写 -

    Java常用的反射方法

    代码中包含的方法有如下 : 1....4. 反射获取构造方法 4.1有参构造 4.2无参构造 4.3无参构造简便写法 5.反射获取成员方法 5.1无参方法 5.2 有参方法 5.3 获取所有方法(包含Object的方法)

    xss语句构造.docx

    通过平常工作总结,整理出常用的构造xss语句的方法,包括常见的大小写绕过,双写绕过,空格代替,事件的使用

    JavaSE 五万字总结.pdf

    Java基础语法 类型转换 运算符 流程控制 循环 Random 数组 方法 方法重载 递归 二进制 类和对象 成员变量局和部变量 封装 构造方法 String 集合 继承 GIT 抽象类 多态 Java8 异常 泛型 Map File IO 多线程 线程池 ...

Global site tag (gtag.js) - Google Analytics