常见的构造函数类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的构造函数类型相关的知识,希望对你有一定的参考价值。

构造函数类型分为四种、无参数构造函数、有参数构造函数、拷贝构造函数、默认构造函数。
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
参考技术A Java, C++, C#, ActionScript和php 4中的命名规范会要求构造器函数的名称与它所在类的名称相同。

PHP 5 建议的构造器函数名称为__construct。为了保证向下兼容,__construct方法无法找到时会调用任何跟类名同名的方法作为构造器。从 PHP 5.3.3 起,这种途径只对非名字空间的类有效。

在Perl里,构造器被约定俗成地命名为"new",并且会完成创建对象的大量工作。

在 Perl 的 Moose 对象系统中,构造函数(叫做 new)是自动生成的,程序员可以通过指定一个 BUILD 方法来对其进行扩充。

在 Visual Basic .NET里,构造器被命名为New,是个 Sub。

Python里构造器的被分为 __new__ 和 __init__ 两个方法。__new__方法负责为实例分配内储存空间,并接受自身的类作为参数(一般命名为 cls)。__init__方法接受被新建的实例作为参数(一般称为 self)。

Object Pascal 的构造函数用关键字 constructor 标识,并且可以起任意名字(但一般来说会被起名为 Create)。

Objective-C 的构造函数分成两个方法,alloc 和 init。alloc 方法分配内存,init 负责初始化。new 方法会调用 alloc 和 init 两者。

Java语言中的定义变量构造函数

day02 Java语言中的定义类、变量、方法、构造函数


一、概述:

    在Java语言中,变量的定义和使用时非常常见和重要的;同时对后续的操作变量奠定基础,在这里定义和使用变量就要使用到我们前一节说到的数据类型了,它们两个就是绑定在一起使用的。我们回顾一下前一节学的数据类型。

    学完变量以后就要学会使用变量去定义一些东西,去构造我们需要的一些方法来满足学习的需要。从而引申出了构造这一个词汇。构造就是创造的含义,通过创造一些东西来满足。下面就一一的来看一下。


二、定义“类”(class):

    “类”这个概念是通过面向对象得来,什么又是面向对象?我就只说一句,“一切事物皆对象”而面向对象就是面向这些事物进行分类编程。从而就引出了“类”,就是一类事物定义在一个类里面,方便程序员的管理和维护。

    1、定义普通类:

        public  class  student{
        
        }
        译:
            public:是访问说明符,后续章节讲。
            class:就是定义一个类的关键字。
            student:这就是类名。
            { }:这是主体,用花括号括起

    2、“包”(package):

        “包”我们就可以直接理解为一个容器,他是类的上一级目录,他就是拿来装类用的,在创建类的时候都会让我们创建相应的包。注意这个包名必须定义在创建类的开头。

        package abc.com;
        译:
         package:就是包的关键字。
         abc.com:就是具体的报名和结构,是指某一个类存放在abc文件夹下的com文件夹下。


三、定义“变量

    “变量”就是可以改变的量,这大家都知道,可以要定义一个变量你就得知道这个变量是拿来干什么用的,只是为了定义?不然。所以我们就必须要知道定义这个变量到底有没有必要。定义这个变量我们还得知道定义它所需要的类型,是整型?是浮点型?是字符串?还是什么,这就是我们所要考虑的。

例如:

        int a=10;
        String b="abcdefg";
	float c=20f;
	doubl d=30d;

    这就是定义的一个变量。但是变量在Java编程中又分为全局变量和局部变量,哪他们又是如何规范使用?下面就来看一个实例:

    1、定义全局变量:

            即:在类里面定义的变量就是全局变量,全局变量在类里面的任何地方都可以被使用。

        public class One {
            //定义全局变量
	    int a=10;
	    int b=20;
	    float c=30.5f;
	  }

    2、定义局部变量:

            即:在方法里面定义的变量就是局部变量,局部变量再能在该方法里面被使用,是有界定范围的一个定义。

        public class One {  
            //定义一个方法
            public void student(){
                int a = 1;
                int b = 2;
            }
        }

     3、定义方法:

        方法是一个载体,通过方法去执行相关的操作。方法被分为了带参数和不带参数的定义。

        定义的语法:

            访问说明符  返回类型  方法名(参数列表){ };

         3.1、不带参数的方法定义:

            public class One {    //这个是类名
                public void student1(){
		    System.out.println("student1您好!");//表示输出。
	        }  
	    }

         3.2、带参数的方法定义:

             public class One {    //这个是类名
                public int student2(int a , int b){
		    return a+b;
	        }  
	    }

        注意---返回类型:

            在定义方法的时候,一定要注意返回类型,返回类型是由参数的数据类型所决定,下面看这个实例:

             public class One {    //这个是类名
                public float student3(int a , float b){
		    return a+b;
	        }  
	    }
	    译:
	        返回类型为啥会是float数据类型?
	      因为你定义的a是整数类型,b是浮点型也就是带有小数点。
	      一个整数加上一个小数不还是一个小数吗?所以,返回类型就是浮点型。

    4、成员变量:

        对于成员变量这个概念我就简单的说一下,什么是成员变量,也就是说只要在类里面定义的一些变量、方法、构造函数这些都是这个类的成员变量。


实例:简单的来创建使用一下

    创建student类

        package www.com;

        public class Student {
        
          //学生的属性和类型(定义全局变量)
	    String number;
	    String username;
	    int age;
	  //学生的行为方法1
	    public void take(){
		System.out.println("学生已经开始上课!");
	      }
	  //学生的行为方法2
	    public void display(){
		System.out.println("学号:"+number);
		System.out.println("姓名:"+username);
		System.out.println("年龄:"+age);
	      }
        }

    创建UserStudent类来调用实现输出    

        package www.com;

        public class UserStudent {
        
            //调用student定义的方法和变量。
	
	    public static void main(String[] args) {    //主函数,主方法。一个程序的入口

        //----------------------------访问成员变量-------------------
	//一、创建对象,访问类成员
		    Student dzx;
		    dzx = new Student();
		
		//通过对象名.属性名 或 方法名()来访问。同时定义赋值
		    dzx.number="001";
		    dzx.username="dzx";
		    dzx.age=24;
		//赋值成功以后调用他的方法访问输出定义的值。
		    dzx.take();
		    dzx.display();
	    }
	 }

    运行userStudent类时就可以在控制面板中查看到定义的数据。


四、构造函数

    “构造函数”它也是学习Java中的一个核心,可以解决很多的问题,也是要为我们后面系统的学习做相关的知识储备。

    1、如何定义一个构造函数?基本语法

        public 函数名(参数列表){
            
        }
        译:
            public :访问说明符,可以省略不写。
            函数名:这个函数名必须要和“类名”相同。不同就不是构造函数。
            ():参数列表,这个也是可以有可以没有的。
            { }:函数方法体。

        1.1、不带参数的构造函数

        package www.com;

        public class Student {  
        
            public Student(){
		number="001";
		username="zs";
		age=24;
	    }
	 }

        1.2、带参数的构造函数

        package www.com;

        public class Student {  
           
            public Student(String n,String name,int a){
		number = n;
		username = name;
		age = a;
	    }
	    
	 }


实例:创建student类

        package www.com;

        public class Student {
        
            //构造函数1,不带参数
	        public Student(){
		    number="001";
		    username="zs";
		    age=24;
	        }
	
	    //构造函数2,带参数
	        public Student(String n,String name,int a){
		    number = n;
		    username = name;
		    age = a;
	        }
        }

    创建UserStudent类

         package www.com;

         public class UserStudent {
         
             public static void main(String[] args) {    //主函数,主方法。一个程序的入口
                 //二、创建对象访问构造函数1	
		    Student stu = new Student();
		    stu.display();
		
		 //创建对象访问构造函数2
		    Student stu2 = new Student("002", "wmz", 22);
		    stu2.display();
             }
         
         }

  运行userStudent类时就可以在控制面板中查看到定义的数据。


五、结束语:

    到这里我们就学完了一些关于类、变量、方法、函数的定义。也使用到了实例。我们就可以简单的创建一系列的程序跑起来了。去找找书上的实例好好的动手捣鼓一下。很重要的哦!

本文出自 “孤独一夜” 博客,转载请与作者联系!

以上是关于常见的构造函数类型的主要内容,如果未能解决你的问题,请参考以下文章

构造函数

组合使用构造函数模式和原型模式和寄生构造函数

Spring基础篇(8)-Spring构造函数注入—实现子类的动态注入

Python析构函数

组合使用构造函数模式和原型模式

Java语言中的定义变量构造函数