构造器、对象数组、对象属性、静态实例块、this关键字

简介: 它的名字:构造函数、构造方法、初始化方法。 构造条件? 以后我们如何去使用构造器? 你觉得那些对象中那些属性值是必要的,你就在构造器中提出来(就是你如果想创造对象必须要传入我所需要的参数) public class Dog {//这里就是一个简单的类、狗的类 String name; .

它的名字:构造函数、构造方法、初始化方法。

构造条件? 以后我们如何去使用构造器? 你觉得那些对象中那些属性值是必要的,你就在构造器中提出来(就是你如果想创造对象必须要传入我所需要的参数)


public class Dog {//这里就是一个简单的类、狗的类
    String name;
    String chi;

    public Dog(String name, String chi) {//如果你想创建对象输入这两个参数
        this.name = name;
        this.chi = chi;
    }
}

构造器的创建:

                      1.构造器的名称与类名一致

                      2.构造器没有返回参数

                      3.当你的类中没有一个构造器的时候,java虚拟机会自动加入一个空参数的构造器


构造器是在创建完对象后调用

构造器就是一个方法,此方法没有返回值,并且与类名一致

构造器在创建完对象后 调用,调用完毕后,创建对象就结束


调用流程:

               DD f=new DD();

               1.先判断类是否加载了,如果没有加载,必须先加载

               2.创建对象,分配对象的属性和方法内存

               3.调用构造器

               4.构造器调用完毕,返回对象给f


构造器重载:

                   与方法重载是一致的


对象数组:将对象放入数组中规定长度,并且可以通过循环赋值。


import java.util.Scanner;

public class Dog {//这里就是一个简单的类、狗的类
    String name;

    public static void main(String[] args) {
        Dog dog[] = new Dog[10];//这里只是创建对象数组
        dog[0] = new Dog();
        dog[0].name = "x";
        System.out.println(dog[0]);//这里取出的只是数组地址
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            dog[i] = new Dog();//只要是对象就是他玩出花来他都是要创建对象的
            dog[i].name = input.next();
        }
        System.out.println(dog[1].name);
        System.out.println(dog[3].name);
    }
}

没有赋值的对象变量是什么值?:

                                                  null

                                                  null 表示变量没有指向任何内存


 实例块:

             每次创建对象 都会执行实例块, 在构造器之前执行


public class Dog {
    {
        System.out.println("我是实例块");
    }
}

静态块:

             在类加载的时候调用的(只要加载类就会调用,无需加载对象他就会加载)


public class Dog {
    static {
        System.out.println("我是静态块");
    }
}


一个创建对象是如何执行new Dog():

                                                       1.先加载类,将类的属性进行内存分配

                                                       2.然后执行静态块static和赋值(顺序执行)

                                                       3.加载实例属性

                                                       4.执行实例块和赋值(顺序执行)

                                                       5.构造器调用

                                                       6.返回创建好的对象内存


this关键字:

                  当前对象

                  Java允许不同区域的重名,在嵌套区域中重名,是就近原则

                  访问对象,只能访问到属性和方法

                  不能在静态成员中使用

                  1.是当前对象 this 

                  2.可以用于转发构造器 this():

                                                              只能写在构造器代码的第一行上

                                                              一个构造器只能写一句


public class Dog {//构造器转发代码不知道用那


    String name;
    String Dizhi;
    int age;

    public Dog(String name) {
        this(name, "哈哈", 10);//运行到这句 马上转发到构造器上 等构造器执行完毕后 在向下执行代码
    }

    public Dog(String name, String dizhi) {
        this(name, dizhi, 10);
    }

    public Dog(String name, String dizhi, int age) {
        this.name = name;
        this.Dizhi = dizhi;
        this.age = age;
    }
}


目录
相关文章
|
1月前
引用构造器练习
引用构造器练习
32 0
|
7月前
|
存储 算法 C语言
27 C++ - 对象成员变量和函数的存储
27 C++ - 对象成员变量和函数的存储
26 0
方法引用符、引用类方法、引用对象的实例方法、引用类的实例方法及引用构造器
方法引用符、引用类方法、引用对象的实例方法、引用类的实例方法及引用构造器
73 0
【构造函数】解析构造函数的作用
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
|
编译器 C++
【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数(一)
朋友们好啊,今天终于更新了。我是柠檬叶子C,本章将继续讲解C++中的面向对象的知识点,本篇主要讲解默认成员函数中的构造函数、析构函数和拷贝构造函数。还是和以前一样,我们将由浅入深地去讲解,以 "初学者" 的角度去探索式地学习。会一步步地推进讲解,而不是直接把枯燥的知识点倒出来,应该会有不错的阅读体验。如果觉得不错,可以 "一键三连" 支持一下博主!你们的关注就是我更新的最大动力!Thanks ♪ (・ω・)ノ
109 0
【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数(一)
|
安全 编译器 C++
【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数(二)
朋友们好啊,今天终于更新了。我是柠檬叶子C,本章将继续讲解C++中的面向对象的知识点,本篇主要讲解默认成员函数中的构造函数、析构函数和拷贝构造函数。还是和以前一样,我们将由浅入深地去讲解,以 "初学者" 的角度去探索式地学习。会一步步地推进讲解,而不是直接把枯燥的知识点倒出来,应该会有不错的阅读体验。如果觉得不错,可以 "一键三连" 支持一下博主!你们的关注就是我更新的最大动力!Thanks ♪ (・ω・)ノ
80 0
【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数(二)
类初始列表和类对象作为类成员
类初始列表和类对象作为类成员
类初始列表和类对象作为类成员
|
Java 数据库
java反射机制查找类的属性并赋值
先说一下需求:最近做一个项目其中需要将前台传来的数组存到数据库,但是这个表里有15个字段,集合是不固定的,然后要把这个集合的数值赋给这个类的相应属性,然后存到数据库中。集合长度应小于等于这个类属性的个数。
287 0
|
存储
成员变量和方法的区别?
成员变量有两种: 实例变量 类变量(也称静态变量,静态域)
133 0