zoukankan      html  css  js  c++  java
  • linkin大话面向对象--构造器详解

      
    对象的产生格式:类名称  对象名 = new  类名称();

    因为有(),所以是方法,实际上它就是构造方法,并且是非私有的构造方法。如:CellPhone cp = new CellPhone();


    构造器是一个特殊的方法,这个特殊方法用于创建实例时执行初始化。构造器是创建对象的重要途径,即使使用工厂模式,反射等方式创建对象,其实质依然是依赖于构造器,因此,java类必须包含一个或者一个以上的构造器。一旦自己显示的写了构造方法,那么java就不再为我们提供那个隐式的无参构造方法了。

      特点:1,方法名与类名相同 2,不用定义返回值类型  3,不需要写return语句

    作用:给类中的字段进行初始化,可以用来创建对象。
    注意:多个构造方法是以重载的形式存在的。可以使用this在一个构造器中调用另外一个构造器。


    构造器是创建java对象的途径,但不是说构造器完全负责创建java对象。实际上,当程序员调用构造器的时候,系统会先为该对象分配内存空间,并为这个对象执行默认初始化,这个对象在构造器执行前就已经完成了。所谓的调用构造器来new对象,不过就是将上面那个已经存在的对象作为构造器的返回值来返回,通常还会赋给另一个引用类型的变量,从而让外部程序可以访问这个对象。


    通常建议为java类保留无参数的默认构造器,养成这种良好的习惯。
    在软件开发中有一个规则,就是不要把相同的代码书写2次以上,充分的利用每一段代码,这样子可以让程序代码更加简洁,也可以降低软件的维护成本。



    •   setter方法和构造方法都可以用来初始化字段的值,那么什么时候用构造方法什么时候用setter?
     1,当字段的值是和类的对象紧密相关不可分割的时候,用构造方法,就是说我要有这个实例,就必须有这个字段值,就用构造方法。
     2,需要初始化的字段值不太多的时候可以用构造方法,如果字段值太多,构造方法的参数列表太。。。了。
     3,其他时候都可以用setter方法。

    //测试构造器重载
    public class ConstructorOverLoad {
        private String name;
        private int age;
        
      //默认的构造器
        public ConstructorOverLoad(){
            
        }
        
        public ConstructorOverLoad(String name){
            this.name = name;
        }
        
        public ConstructorOverLoad(String name,int age){
            //通过this调用另一个重载的构造器的初始化代码
            this(name);
            this.age = age;
        }
        
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public static void main(String[] args) {
            ConstructorOverLoad linkin = new ConstructorOverLoad();
            ConstructorOverLoad linkin1 = new ConstructorOverLoad("linkinPark");
            ConstructorOverLoad linkin2 = new ConstructorOverLoad("linkinPark",25);
        }
        
    }
    

    • 如何写出一个设计很好的类?

    分析思路:

    根据要求写出类所包含的字段;
    所有的字段都必须私有化;
    封装之后的字段可通过setter和getter设值和取得;
    按需求可添加若干构造方法;
    根据需求可添加相应的方法;
    类中的所有方法都不要直接处理(输出打印),而是交给调用者去处理。


  • 相关阅读:
    php中如何实现在线网友
    用php与mysql的电子贺卡代码
    基于PHP MySQL的聊天室设计
    xml php动态载入与分页
    模拟OICQ的实现思路和核心程序
    FC4下安装plog快速指南(plog版本:1.01)
    一个简单的php在线端口扫描器
    UVA 10604 Chemical Reaction(六维dp数组)
    HDU 1503 Advanced Fruits
    hust 1607 Triangles(经典好题)
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233167.html
Copyright © 2011-2022 走看看