java学习——29.构造方法

封装是面向对象的核心特性,是信息隐藏思想的具体实现技术。

Java提供构造方法、析构方法、方法重载、设置访问控制权限等措施对类进行封装。

今天介绍构造方法。

1、构造方法

类的构造方法用于创建类的一个实例并对实例的成员变量进行初始化。

构造方法与其他方法的不同之处在于:构造方法与类同名。

构造方法通过new运算符调用。

注:构造方法只在创建对象时调用一次。如要修改成员变量的值只能自己写方法修改,不能再通过构造方法来修改。

2、声明构造方法

一个类可声明多个构造方法对成员变量进行不同需求的初始化,构造方法不需要写返回值类型。

例:

public class Circle{

private double radius;

public Circle(double radius){//声明构造方法,初始化成员变量

this.radius=radius;

}

3、调用构造方法

使用new运算符调用指定类的构造方法。

例:

Circle c=new Circle(3.0);

4、默认构造方法

当一个类没有声明构造方法时,Java自动为该类提供一个无参数的默认构造方法。

默认构造方法对各成员变量按其数据类型进行初始化。

整数初始化为0,浮点数初始化为0.0,字符初始化为'\u0000’,布尔类型初始化为“false”,引用数据类型初始化为null。

例:上篇(java学习——28.类和)中的例题

Circle类并没有构造方法,但在创建对象时:

Circle c=new Circle();

调用了默认构造方法。

如:以下代码

public class Circle1{

public double radius;

public double get_radius(){

return radius;

}

public static void main(String args[]){

Circle1 c=new Circle1();

System.out.println("The radius is "+c.radius);

}

}

其输出结果为:The radius is 0.0

此例即调用了默认构造方法,将double类型的值初始化为0.0。

5、拷贝构造方法

类的拷贝构造方法指参数为该类对象的构造方法,实现对象的复制功能。

Java不提供默认的拷贝构造方法,要实现对象的复制,得自己写。

例:public Circle(Circle c){

this.radius=c.radius;

}

6、构造方法重载

Java支持构造方法重载。

例:圆类。

public class Circle1{

public double radius;

public Circle1(){

radius=1;

}

public Circle1(double radius){

this.radius=radius;

}

public Circle1(Circle1 c){

this.radius=c.radius;

}

publics tatic void main(String args[]){

Circle1 c=new Circle1();

System.out.println("The radius is"+c.radius);

Circle1 c1=new Circle1(3.0);

System.out.println("The radius is"+c1.radius);

Circle1 c2=new Circle1(c1);

System.out.println("The radius is"+c2.radius);

}

}

其运行结果为:

The radius is 1.0

The radius is 3.0

The radius is 3.0

(0)

相关推荐

  • 《 高淇Java300集视频》:【3】面向对象基础

    面向过程(Procedure Oriented)和面向对象(Object Oriented,OO)都是对软件分析.设计和开发的一种思想,它指导着人们以不同的方式去分析.设计和开发软件. 面向对象编程, ...

  • 给小白讲java中两大怪物,附带面试题!

    最近老是有小伙伴问类和Object相关的问题,感觉还是很多人对此不是很明白,那我们今天就干掉这两个怪物. 如何搞定20k的面试小抄 类介绍 Java 程序是由若干个类组成的,类也是面向对象编程思想的具 ...

  • Java封神之路:Java面试备战(五)

    1.76 如果有两个类A.B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢? 因为类A.B不是接口,所以是不可以直接实现的,但可以将A.B类定义成父子类,那么C类就能实现A. ...

  • java学习——30.构造方法举例

    构造方法作为初始化成员变量的方法,完全掌握非常重要. 虽然Java虚拟机会自动匹配构造方法,但作为自己写程序的程序猿们,还是要非常熟悉地知道调用的到底是哪一个构造方法. 1.调用默认构造方法 当类中没 ...

  • Java学习——35、子类的构造方法

    本文接上篇--34.类的继承. 子类可以继承父类的除了构造方法以外的所有成员,在子类创建对象时,必须对父类的变量进行初始化.但构造方法是不被继承的,故要在子类当中调用父类的构造方法. 如果子类中没有显 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • Java学习-126.2048代码

    本篇帖的是按钮的代码. 因为按钮比较多,包括菜单项的动作,为了区分,我用了两个内部类来实现这两部分代码. //本类是Game_2048类的内部类,用来实现上.下.左.右四个按钮,以及重新开始和退出游戏 ...

  • Java学习—125.2048代码

    本篇帖的是部分动作代码. 每个方法前都有注释说明本方法的功能. //随机选取一个位置,并填入数字2.如果此位置中已有数字,那么换一个位置. public void rule(){ x=ran.next ...

  • Java学习—124.2048代码

    游戏的主界面的代码在类game_2048中. 本类主要包括两个方面: 一是布局. 二是动作,按钮的动作. 其中,动作又有菜单动作,按钮动作.而按钮动作又有多方面,在下一篇的代码中会有注释说明. 本篇帖 ...