• JAVA的学习日记13


    Java构造器

    大佬博客指路

    定义声明:
    构造方法的名字必须和所在类的名字一致,没有返回值,但不能声明void,访问权限可以为任意,但是一般情况下使用public方法权限,构造方法中的参数可以根据需要自行定义,参数的不同的构造方法构成重载;

    package com.Test;
    
    public class test {
        class Fu {
            public Fu(){} //无参的公有构造方法
            public Fu(int i){} //参数类型为int的公有构造方法
        }
        
        public class Demo extends Fu {
            public Demo(){} //无参的公有构造方法
            public Demo(int i){} //参数类型为int的公有构造方法
            public Demo(int i,double d){} //参数类型为int和double的公有构造方法
        }
    }
    
    

    构造方法的使用:
    java中构造方法的使用有两个地方,一个是跟在关键字new后面,类名加上一个小括号(),小括号内根据实际加上实参,另外一个是跟在关键字super或this后加上一个小括号(),小括号内根据实际添加实参

        Demo demo = new Demo(); //这里是调用的是一个无参的构造方法,必须声明在方法中,最好声明在主方法
        //上面构造方法的参数根据实际添加实参,jvm根据构造方法的参数不同加载不同的构造方法;
        //2
        public Demo(){
            this(2); //这里调用参数为int类型的本类的构造方法
        }
        //3
        public Demo(){
            super(1); //调用参数为int类型的父类的构造方法
        }
    
    //    注意:2和3中this或super调用构造方法只能出现在构造方法中,而且必须出现在第一行,所以一个构造方法中第一行只能为this或super调用构造方法,两者不能同时调用构造方法出现,而且注意this或super调用构造方法时,要留构造方法出口,意思就是最后调用的构造方法中没有再调用别的构造方法!
    
    

    构造方法的作用:
    1.为了初始化成员属性,而不是初始化对象,初始化对象是通过new关键字实现的
    2.通过new调用构造方法初始化对象,编译时根据参数签名来检查构造函数,称为静态联编和编译多态
    (参数签名:参数的类型,参数个数和参数顺序)
    3.创建子类对象会调用父类构造方法但不会创建父类对象,只是调用父类构造方法初始化父类成员属性;

    学习实例和实现

    package com.oop.Demo02;
    
    public class Person {
        //一个类即使什么都不写,它也会存在一个方法,这个时候称构造器为隐式构造器
    
        String name;
    
        /*
        构造器的作用:
            1.使用new关键字,本质是在调用构造器
            2.实例化初始值
    
    
        IDEA中快捷键:alt+insert键,快速创建构造器
         */
    
        //显式定义构造器
        //无参构造---实例化初始值
    //    public Person(){
    //        this.name = "cdoudou";
    //    }
    
    
        //有参构造:一旦定义了有参构造,无参就必须显式定义
    //    public Person(String name){
    //        this.name = name;
    //    }
    
    
    
    
    
        //快捷键定义的构造器
    //    public Person() {
    //    }
    //
    //    public Person(String name) {
    //        this.name = name;
    //    }
    }
    
    
    /*
    public static void main(String[] args) {
            //实例化了一个对象
            Person person = new Person();
    }
    
    
        构造器:
            1.和类名相同
            2.没有返回值
        作用:
            1、new本质在调用构造方法
            2、初始化对象的值
        注意点:
            1.定义有参构造之后,如果想要使用无参构造,需要显式的定义一个无参的构造
     */
    

    内存分析

    package com.oop.Demo03;
    
    public class Pet {
        public String name;
        public int age;
    
    
        public void shout(){
            System.out.println("叫");
        }
    }
    
    /*
    public static void main(String[] args) {
            Pet dog = new Pet();
    
            dog.name = "旺财";
            dog.age = 5;
            dog.shout();
    
            System.out.println(dog.name);
            System.out.println(dog.age);
    
     */
    

    小结

    1.类与对象

    • 类是一个模板,对象是一个具体的实例

    2.方法

    • 定义和调用

    3.对象的引用

    • 引用类型:基本类型(8)
    • 对象是通过引用来操作:栈----堆

    4.属性:字段Field 成员变量

    • 默认初始化:
      数字:0 0.0
      char:u0000
      boolean:false
      引用:null
      修饰符 属性类型 属性名 = 属性值

    5.对象的创建和使用

    • 必须使用new 关键字创造对象 构造器 Person doudou = new Person();
    • 对象的属性 doudou.name
    • 对象的方法: doudou.sleep()

    6.类:

    • 静态的属性:属性
      动态的行为:方法
    加油!!!马上封装、继承和多态了!
  • 相关阅读:
    Ajax学习笔记(1)
    html学习笔记(2)-字母大小写转换练习
    html学习笔记(1)--处理特殊字符以及其他的一些小细节
    jQuery学习笔记(8)--表格筛选
    jQuery学习笔记(7)--表格展开关闭
    Linux学习8-Linux常用命令(4)
    Linux学习7-Linux常用命令(3)
    Linux学习6-Linux常用命令(2)
    Linux学习6-Linux常用命令(1)
    Linux学习5-初学者注意事项
  • 原文地址:https://www.cnblogs.com/cdoudou/p/13687368.html
Copyright © 2020-2023  润新知