Java学习笔记之---构造方法

(一)构造方法的特性
  1. 构造方法不能被对象单独调用
  2. 构造方法与类同名且没有返回值
  3. 构造方法只能在对象实例化的时候被调用
  4. 当没有指定构造方法时,系统会自动添加无参的构造方法,当有指定的构造方法时,系统不会再自动添加无参的构造方法
  5. 一个类可以有多个构造函数
  6. 子类的构造默认调用父类的构造
  7. 虽然父类的构造方法不能被继承,不能被重写,但是会影响子类对象的实例化
  8. 子类默认调用父类的无参构造方法,可以通过super调用父类允许访问的其他构造方法
(二)构造方法

(1)带参构造方法

public 构造方法名(数据类型 形式参数1,数据类型 形式参数2){   }

public Animal(String name){

    this.name=name;

    System.out.println("我是有参构造方法1");

}

public Animal(String name,int age ){

    this.name=name;

    this.age=age;

    System.out.println("我是有参构造方法2");

}

(2)无参构造方法

public 构造方法名(){   }

public Animal(){

    System.out.println("我是无参构造方法");

}
(三)构造方法的调用

通过实例化对象来调用

 class AnimalTest{

    public static void main(String[] args){

        Animal a=new Animal("aa",1);

        System.out.println(a.name);

    }

}
(四)构造方法实例

public class Animal {
private String name;
int age;
{
System.out.println("我是构造代码块");
}
public Animal(){
System.out.println("我是无参构造方法");
}
public Animal(String name){
        this.setName(name);
      System.out.println("我是有参构造方法1");
}
public Animal(String name,int age ){
this.setName(name);
this.age=age;
System.out.println("我是有参构造方法2");
}
public void setName(String nmae){
this.name=name;
}
public String getName(){
return this.name;
}
}
class AnimalTest{
public static void main(String[] args){
Animal a=new Animal("aa",1);
System.out.println(a.getName+":"+a.age);
Animal b=new Animal("bb");
System.out.println(b.getName());
Animal c=new Animal(); } }
运行结果:
我是有参构造方法2
aa:1
我是有参构造方法1
bb
我是无参构造方法
(五)构造代码块
  1. 构造代码块在成员变量下面
  2. 构造代码块比构造方法先执行
 
 public class Animal {

    String name;

    int age;

    {

        System.out.println("我是构造代码块");

    }

    public Animal(){

        System.out.println("我是无参构造方法");

    }

    public Animal(String name){

        this.name=name;

        System.out.println("我是有参构造方法1");

    }

    public Animal(String name,int age ){

        this.name=name;

        this.age=age;

        System.out.println("我是有参构造方法2");

    }

}

class AnimalTest{

    public static void main(String[] args){

        Animal a=new Animal("aa",1);

        System.out.println(a.name+":"+a.age);

        Animal b=new Animal("bb");

        System.out.println(b.name);

        Animal c=new Animal();

    }

}

运行结果:

我是构造代码块

我是有参构造方法2

aa:1

我是构造代码块

我是有参构造方法1

bb

我是构造代码块

我是无参构造方法

Java学习笔记之---构造方法的更多相关文章

  1. 1.3(java学习笔记)构造方法及重载

    构造方法,用于对象的初始化,在创建对象时被自动调用的特殊方法.构造方法名称与类名一致,通过new调用. 下面通过代码来详细讲解 public class Point { int x, y; publi ...

  2. Java学习笔记之——构造方法

    构造方法:方法名和类名相同且没有返回值 1.作用 创建对象 对象初始化 2.普通方法的结构 权限修饰符 返回值类型 方法名(形参){ 方法体: } 3. 构造方法的结构 (1)结构 权限修饰符 方法名 ...

  3. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  4. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  5. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  6. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  7. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  8. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  9. 20145330第八周《Java学习笔记》

    20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...

随机推荐

  1. thinkphp5 的一些笔记

    Model里面的一些属性添加 protected $resultSetType = 'collection'; protected $autoWriteTimestamp = 'timestamp'; ...

  2. 图像滤镜艺术---Glow Filter发光滤镜

    原文:图像滤镜艺术---Glow Filter发光滤镜 Glow Filter发光滤镜 Glow Filter发光滤镜是一种让图像产生发光效果的滤镜,它的实现算法如下: 1,对原图P进行高斯模糊得到图 ...

  3. SqlServer Bug:复制架构更改参数(replicate_ddl)无效

    原文:SqlServer Bug:复制架构更改参数(replicate_ddl)无效 最近测试可更新订阅的架构更改问题,发现了一个 bug. 在复制中,当在发布数据库对发布数据库进行架构更改时,结构自 ...

  4. C语言实现的CRC16/CCITT-FALSE校验码函数

    要求:输入字符串“00 AA FF CC AA 01 00” 得到校验码“79B1” 方法1: // ConsoleApplication1.cpp: 定义控制台应用程序的入口点. // #inclu ...

  5. Vm安装

      说明:都是默认安装,并不需要繁琐设置,所以没有文字说明

  6. iOS和Android使用MQTT协议实现消息推送和即时通讯(替代XMPP,已经有TMS MQTT)

    大多数应用都会涉及到即时聊天的功能,在开源方案中有XMPP和MQTT.其中XMPP是基于XML的,并且不支持消息质量QOS, 所以本身并没有消息重传的机制,从而会导致丢消息.而MQTT是基于二进制的, ...

  7. 2016最受欢迎国产开源软件评选,2016 年度开源中国新增开源软件排行榜 TOP 100

    http://www.oschina.net/news/80154/2016-cn-open-source-software-top http://www.oschina.net/project/to ...

  8. 一个拼图工具TImageBox的制作思路

    http://www.cnblogs.com/del/archive/2010/04/24/1719631.html

  9. 基于SAP HANA平台的多团队产品研发

    工欲善其事必先利其器.要提高多团队的开发效率,而且还是在SAP HANA平台上,建议大家还是本着“慢就是快”的原则,不要急功近利,在没有准备好团队开发的架构时就匆忙开始功能的开发.匆忙功能开发就算了, ...

  10. Linux ssh及远程连接工具

    putty:http://www.so.com/link?url=http%3A%2F%2Fsoftdl.360tpcdn.com%2FPuTTY%2FPuTTY_0.67.zip&q=put ...