一:构造方法的概念:

            构造方法是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

二:构造方法的特殊性(反映在以下几个方面):

      1.构造方法作用:
         (1)构造出来一个类的实例
         (2)对构造出来个一个类的实例(对象)初始化。
      2.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
      3.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
      4.类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。
      5.不能被static、final、synchronized、abstract和native修饰。
      6.构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。
      7.构造方法分为两种:无参构造方法 有参构造方法
               构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
 
【代码示例01】

【代码示例02】

 1 class Penguin {
2 // 属性
3 /* 无参构造方法 */
4 public Penguin() {
5 name = "qq";
6 love = 20;
7 sex = "Q仔";
8 System.out.println("执行构造方法");
9 }
10 }

三:构造方法的特点:

      1:方法名与类名相同

2:无返回值类型

3:可以被重载

4:不能被继承

5:不能被重写

6:主要作用为: 用于对象的创建(new)

注意:

(1)调用时机:类new时被自动调用

(2)作用:在类初始化的时候进行赋值

四:构造方法的重载

         

【代码示例】

//无参构造
public Penguin () {
name = "qq";
love = 20;
sex = "Q仔";
} 调用方法: Penguin pgn = new Penguin(); //============================================= //有参构造
public Penguin (String name,int health,int love,String sex ) {
this.name = name;
this.health = health;
this.love = love;
this.sex = sex;
} 调用方法: Penguin pgn = new Penguin("美美", 80, 20, "Q仔"); //==============================================
//重载方法
public Penguin (String name,int health,String strain ) {
this.name = name;
this.health = health;
this.strain = strain;
} 调用方法:Penguin pgn = new Penguin("美美", 60, "拉布拉多");

1:方法重载的特殊性:

(1):方法名相同         (两个及两个以上方法名相同)

(2):参数项不同         (参数数据类型或个数不同)

(3):与访问修饰符和返回值无关

(4):用在同一个类里

注意:构造方法与普通方法都可以形成重载

 2:方法重载的作用:

(1):减少代码量,使代码更简洁明了

(2):调用方便,提高代码的灵活性

五:this关键字的用法:

     1:this的概念:this关键字 是对一个对象 的默认引用,这里用以区分同名成员变量

 2:this的使用

(1)调用属性                 eg:  this.health=100;     this.strain="拉布拉多";

(2)调用方法                 eg:   this.print();

(3)调用构造方法          eg:  this()【调用无参构造方法】     this("小黑",100,100,"公") 【调用有参构造方法】

注意:•(如果调用构造方法,必须是构造方法中的第一条语句,且只用在同一个类中)

•(在子类中,既可以调用本类的属性和方法,也可以调用父类的属性和方法)

构造方法及方法(重载)与this关键字的使用的更多相关文章

  1. (1)构造方法和方法重载 (2)this关键字 (3)方法的传参和递归调用

    1.构造方法和方法重载如: Person p = new Person(); - 声明Person类型的引用p指向Person类型的对象 p.show(); - 调用名字为show()的成员方法 1. ...

  2. 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!

    有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...

  3. Java中的(构造方法、方法重载、final修饰符使用及继承和抽象)

    构造方法: 构造方法的名称和类名相同,没有返回类型,参数列表(类型.个数)不同 方法重载:成员方法和构造方法都可以进行重载 方法名相同但是参数列表(类型,个数)不同,成为方法的重载. 继承:直支持单继 ...

  4. C#基础(203)实例方法和重载方法总结,构造方法与实例方法总结,this关键字

    c#方法的重载:分为实例方法重载和静态方法重载俩种 1.实例方法重载的调用特点 首先写三个Add方法和三个Sub方法 public int Add(int a,int b) { return a + ...

  5. java——方法重载与重写、构造方法、this关键字、static关键字、strictfp关键字、类的导入

    Java SE5新增加@Override注解,它并不是关键字,但是可以把它当作关键字使用.当你想要覆写(重写)某个方法时,可以选择添加这个注解,在你不留心重载而并非覆写了该方法时,编译器就会生成一条错 ...

  6. 面向对象编程(二)封装--构造方法,this关键字,static关键字,方法重载

    面向对象三大特点:封装.继承.多态 封装概念 ①   将东西包装在一起,然后以新的完整形式呈现出来: 将方法和字段一起包装到一个单元中,单元以类的形式实现; ②   信息隐藏,隐藏对象的实现细节,不让 ...

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

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

  8. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  9. Java ——对象 类 方法重载 构造方法 封装 内部类

    本节重点思维导图 快捷键 生成代码:alt+shift+s 提取变量:alt+shift+L 快速复制行:alt+ctrl+向上或向下的箭头 删除行:ctrl+d 类:对同一种事物共同属性和行为的抽象 ...

随机推荐

  1. hive 常用日期格式转换

    固定日期转换成时间戳select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800select unix_timestamp('201608 ...

  2. 细说string和stringbuffer

    ========================================================================================= 在我看来,学习jav ...

  3. RPC和REST的区别

    REST定义 REST是一种架构风格,指的是一组架构约束条件和原则.满足这些约束条件和原则的应用程序或设计就是 RESTful.REST规范把所有内容都视为资源,网络上一切皆资源.REST并没有创造新 ...

  4. NoSuchMethodError错误

    发生原因: 一个项目中包含有相同名字,但内容不同的包 解决办法:删除其中暂时不用的包 后记:如果不知道哪一个包是多余的,直接用IDE查找:找到该类,然后将该包进行反编译,再次导入该项目,再找到该类,出 ...

  5. PHP获取日期和时间:

    转载请注明来源:https://www.cnblogs.com/hookjc/ 使用函式 date() 实现 <?php echo $showtime=date("Y-m-d H:i: ...

  6. 冒泡法排序_c++实现

    看完了郝斌老师的c语言视频,冒泡法排序,就试着写了.我觉得学习算法最重要的不是代码,而是它的原理. 代码: /** 2 * Copyright (c) 1991 - 2016 Arvin Tang. ...

  7. 记录使用WKWebView进行OC与JS交互所踩过的坑

    目录: 1.页面cookie缓存 2.允许弹出JS的弹框 3.在webview页面加载的时候,添加加载进度条 4.禁止掉webview页面的长按复制粘贴功能 5.设置webview的userAgent ...

  8. Spring-BeanFactory体系介绍

    1 BeanFactory介绍 BeanFactory是Spring中的根容器接口,所有的容器都从从它继承而来,ApplicationContext中对于BeanDefinition的注册,bean实 ...

  9. 05 BOM与DOM

    BOM和DOM 1. 什么是BOM和DOM 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的 ...

  10. Solution -「CF 494C」Helping People

    \(\mathcal{Description}\)   Link.   给定序列 \(\{a_n\}\) 和 \(m\) 个操作,第 \(i\) 个操作有 \(p_i\) 的概率将 \([l_i,r_ ...