Java构造方法与创建对象 |
您所在的位置:网站首页 › 怎么调用构造方法 › Java构造方法与创建对象 |
上一篇文章:Java之面向对象编程 本篇目录 构造方法与创建对象创建对象的时候系统都做了什么对象 下一篇文章 构造方法与创建对象 构造方法是class类中特殊的方法使用类创建对象时,需要用到它的构造方法class类中构造方法的名字必须和class类的名字保持一致构造方法和普通的方法相比,构造方法没有类型,没有类型也就意味着构造方法不能有返回值一个class类中,如果没有自定义构造方法,那么该类会有一个默认的构造方法;如果用户自定义了构造方法,那么就不会有默认的构造方法默认的构造方法中没有任何参数,方法体中没有任何语句一个class类中可以有多个构造方法,但是每个构造方法的参数和参数类型应当有差别,以此来辨别不同的构造方法创建对象时,先声明对象,然后用new运算符和类的构造方法为声明的对象分配变量。类中没有自定义的构造方法时,使用默认的构造方法;有一个或多个构造方法时,使用指定的构造方法默认的构造方法: import java.util.Scanner; class Factorial { long factorial(int n){ //这是一个普通的求阶乘的方法 long fact = 1; for(int i = 1; i public static void main(String args[]){ Scanner input; //声明一个Scanner类的对象input input = new Scanner(System.in); //为input分配变量,使用new和构造方法 Factorial a = new Factorial(); //声明Factorial类的对象a,并使用new运算符和默认构造方法Factorial()分配变量 int n = input.nextInt(); System.out.println(a.factorial(n)); } }自定义构造方法: class Area { int a, b, area; int x, y; Area(){ //自定义的构造方法 area = a * b; } Area(int a, int b){ //自定义的构造方法,同一个类里的不同构造方法参数应当有所差异 x = a; y = b; } } //类中有了自定义的构造方法,则不会再有默认的构造方法 public class Example { public static void main(String args[]){ Area a1, a2; //声明两个Area类的对象 a1 = new Area(); //为 a1 分配变量 a2 = new Area(3, 4); //为 a2 分配变量 使用new 和类中的构造方法 } } 创建对象的时候系统都做了什么首先是声明变量,声明变量的时候因为并没有对其进行初始化,所以这个对象是一个空对象,Area a1, a2;这里声明了两个a1、a2,是两个空对象(null)。当系统碰到new Area();语句 和 new Area(3, 4);语句时,就会以Area类中的成员变量为模板分配相应的内存,即成员变量a、b、area、x、y都会被分配内存空间,且分配了两份内存空间,因为是a1、a2两个对象,并为成员变量赋初值,如果是整型就赋值0;如果是浮点型就赋初值0.0;如果是boolean型,就赋初值false;如果是引用型,就赋初值null(Java中没有指针,所谓引用就相当于C语言的指针)。为成员变量分配内存空间并赋初值,计算两个十六进制的引用值,将两个引用值分别赋给a1和a2,这时a1、a2都会拥有一组自己的成员变量,这里的成员变量a、b、area、x、y被称为a1和a2各自的实体。当这一系列操作都完成之后,才会执行相应构造方法体中的语句。为了简洁起见,声明变量和初始化一般写在一起Area a1 = new Area();、Area a2 = new Area(3,4);。 ![]() Java程序的构成 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |