构造方法

什么是构造方法

在类实例化对象时运行的一种特殊的方法

为什么需要构造方法

构造方法适合为对象的属性赋初值

编写构造方法

public 类名(){
//方法体
}

构造方法不写返回值

构造方法的方法名必须和类名相同

构造方法不能使用对象调用只在实例化对象时运行

new 类名(参数列表);//调用构造方法

注意:

如果一个类中没有编写构造方法那么系统会自动为这个类生成一个无参构造

反之不会生成一个无参构造

构造方法可以重载

return关键字

返回方法指定类型的值(这个值是确定的)结束方法的执行(仅一个return)。

语法:

public int A(int a){
reeturn a; }

成员变量和局部变量

类中定义的变量(属性)就是成员变量。
方法中定义的变量,或形式参数就是局部变量。

区别

作用域不同

成员变量可以在当前类的任何方法中使用。 
局部变量只能在声明他的方法中使用。

初始值不同

成员变量有初值默认值。
(0\0.0\false\null)
局部变量没有初始值。

优先级不同

成员变量和局部变量同名时。
局部变量具有更高的优先级。
如果想访问成员变量需要在变量名前加this. 。

this关键字

this是对象在方法中对自身的引用

用法

this.属性

区分成员变量和局部变量

this.方法()

this()
调用当前类的构造
必须编写在构造方法中
必须编写在方法中的第一行

构造函数之间的调用:

this:区分局部变量和成员变量同名的情况。

构造函数之间的调用只能通过this语句来完成。

构造函数之间进行调用时this语句只能在第一行。

构造方法要先执行,如果构造方法当中还有初始化,那就区执行更细节的初始化。

构造代码块

特点:

对象一建立就运行了,而且优先于构造函数执行。

语法:

{
System.out.println("........");
}

作用:

给对象进行初始化的。

构造代码块和构造方法的区别?

1.构造方法是对应的对象进行初始化。

2.构造代码块是给所有的对象进行统一初始化。

构造代码块种定义是不同对象共性的初始化内容。

引用数据类型

特征(String、自造类、数组)

变量保存的是这个对象的引用

在方法中 变量的引用保存在栈中 对象保存到堆中

Dog d=new Dog("旺财",3,17.6,"金毛");
Dog dd=d;
dd.name="亏财";
System.out.println(d.name);

引用数据类型数组

Dog[] dogs=new Dog[4];
//默认值:{null,null,null,null}

引用数据类型数组元素的默认值是null

null指针异常

null是个常量,表示当前引用,没有引用任何对象

当这样的null对象打.调用属性或方法是,会出现null异常

如果在遍历引用类型数组时发生null指针异常,需要在元素调用属性或方法前加个if判断

多维数组(二维数组)

普通数组中,数组元素是具体数据

多维数组中,数组元素还是数组

Day02:对象和类(下)的更多相关文章

  1. Python-面向对象(类)二

    一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...

  2. Python-面向对象(类)一

    一.如何创建类 class cls: pass 二.创建方法 构造方法: __init__(self, arg) obj = 类('a1') 普通方法: obj = 类('xxx') obj.普通方法 ...

  3. CoreJava学习笔记1-基本概念、对象和类

    一.    java的基本程序设计结构 (一)   java共有8种基本类型:4种整型,2种浮点类型,1种char,1种boolean. 1)       4种整型:byte(1).short(2). ...

  4. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  5. winform中利用反射实现泛型数据访问对象基类(1)

    考虑到软件使用在客户端,同时想简化代码的实现,就写了一个泛型的数据访问对象基类,并不是特别健全,按道理应该参数化的方式实现insert和update,暂未使用参数化,抽时间改进. /// <su ...

  6. Java对象与类中的一个小练习

    一直在Eclipse里做练习.是做一个练习,执行一个的那种.刚刚学习了Java的对象与类,练习中把类和执行放在同一包下的两个.java文件里面了.是可以执行的.(Get) 相关代码: public c ...

  7. 关于Object类下所有方法的简单解析

    类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直接来看jdk的源码,开始我们的分析之路 ...

  8. OLE:对象的类没有在注册数据库中注册

    我在网上下载了破解版的SAS9.3,用了一段时间之后,今天打开就填出一个提示框:OLE:对象的类没有在注册数据库中注册 激活该对象所需的应用程序不可用.是否用"转换--"将其转换为 ...

  9. JAVA基础复习与总结<一> 对象与类的概念_内部类_继承与多态

    一.对象与类 类:类是一个模版,它描述了一类对象的行为和状态. class animal { private int color; private int size; public void eat ...

随机推荐

  1. windows静态路由

    本机:192.168.1.10 本机网关:192.168.1.254 目的IP:188.1.1.10 指定网关:192.168.1.107 最多跳数:10跳 route  -p  add  188.1 ...

  2. mongodb 3.0 WT 引擎性能测试(转载)

    网上转载来的测试,仅供参考.原文地址:http://www.mongoing.com/benchmark_3_0 类机器. 测试均在单机器,单实例的情况下进行. 机器A(cache 12G,即内存&g ...

  3. k8sReplicaSet控制器

    一.ReplicaSet概述 简称RS,是pod控制器类型的一种实现,用于确保由其管控的pod对象副本数在任一时刻都能精确满足期望的数量.ReplicaSet控制器资源启动后会查找集群中匹配其标签选择 ...

  4. qt5--对话框

    颜色对话框——QColorDialog: 需要   #include <QColorDialog> QColor color=QColorDialog::getColor(QColor(, ...

  5. 京东POP店铺使用京东物流,如何拦截订单

    先进入物流工作台:https://wl.jdwl.com/ 然后操作中心-销售订单查询 然后点击展开按钮 粘贴要查询的订单号 勾选订单,点击取消按钮

  6. Documents.Open返回值为null

    上个月出现的一个问题,将解决方法记录一下~ [问题]无法通过SAP系统外部OS命令(SM69)执行OS服务器上Powershell文件对Office文档的相关命令操作(打开文档等命令). [现象]执行 ...

  7. [HG]小G坐电梯 题解

    C 小G坐电梯 题目描述 小G来到了著名的某大厦.大厦一共有n层,初始的时候小G在第 A 层. 小G特别想去B层小 M 的办公室看一看,然而因为安保原因,B层已经被封锁无法进入. 但是小G既然来了,就 ...

  8. python 手动拼接json数据

    第一步:分别拼接为字符串 第二步:将字符串转化为list 第三歩:将两个list合并为dict 第四步:将dict转换为接送数据 如:  import json keys = ['a', 'b', ' ...

  9. JavaWeb_(SSH论坛)_七、辅助模块

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 为避免代码冗余, ...

  10. [BZOJ2002][洛谷P3203][Hnoi2010]Bounce 弹飞绵羊(LCT维护链长)

    luogu传送门 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 16082  Solved:  ...