博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构造器、对象数组、对象属性、静态实例块、this关键字 ...
阅读量:6216 次
发布时间:2019-06-21

本文共 1967 字,大约阅读时间需要 6 分钟。

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

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

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;    }}

转载地址:http://enlja.baihongyu.com/

你可能感兴趣的文章
.NET Core完成向RyuJIT的迁移
查看>>
为何百度、智链、蚂蚁金服,纷纷压注区块链溯源?
查看>>
关于HTTPOXY漏洞的分析说明
查看>>
Visual Studio 2017 15.5预览版添加对F# Core及Standard的支持
查看>>
系统监控:top vs Htop vs Glances
查看>>
通过调研开源基准测试集,解读大数据的应用现状和开源未来
查看>>
期待已久的Firefox 39最终顺利发布
查看>>
VS2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
查看>>
如何通俗易懂地向别人解释React生命周期方法?
查看>>
马化腾:电力时代孕育了计算机,人工智能兴盛于云计算
查看>>
esp8266代码中的存储标记
查看>>
如何在C++中使用空引用及该或不该
查看>>
进击JavaScript之(三)玩转闭包
查看>>
js面试
查看>>
AngularJS指令实践
查看>>
Python工具分析风险数据
查看>>
Git自由之章 - 关于SSH 公钥
查看>>
关于classpath中有多个同名类或一个接口有多个实现类Spring启动失败总结
查看>>
数组reduce方法的高级技巧
查看>>
pt-online-schema-change使用说明、限制与比较
查看>>