构造方法

什么是构造方法

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

为什么需要构造方法

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

编写构造方法

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. POJ3311Hie with the Pie(floyd传递+DP,状态压缩)

    问题 The Pizazz Pizzeria prides itself in delivering pizzas to its customers as fast as possible. Unfo ...

  2. django前戏

    Django前戏: 1.软件开发: C/S 客户端与服务端 HTTP(超文本传输协议):协议的由来,如同sql语句由来一样.为了开发使用方便所形成的统一接口统一规范 学习Django之前我们先来了解下 ...

  3. Python CGI编程Ⅶ

    简单的表单实例:GET方法 以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是hello_get.py文件,hello_get.html 代码如下: 默认情况下 c ...

  4. C# 遍历控件名称

    List<string> list = new List<string>(); list.Add("textBox2"); list.Add("t ...

  5. NS3安装

    1.添加源sudo vim /etc/apt/sources.list deb http://archive.ubuntu.com/ubuntu/ trusty main universe restr ...

  6. js获取iframe里面的dom

    最近在写页面遇到了问题,一个dom好多地方用到,然后我就单独写了个html页面,然后用iframe引入,但是,想获取iframe里面input的value,获取不到input,后面才知道原来js不能直 ...

  7. [CSP-S模拟测试]:多维网格(组合数学+容斥)

    题目传送门(内部题138) 输入格式 输入数据第一行为两个整数$d,n$. 第二行$d$个非负整数$a_1,a_2,...,a_d$.     接下来$n$行,每行$d$个整数,表示一个坏点的坐标.数 ...

  8. [CSP-S模拟测试]:组合(欧拉路)

    题目传送门(内部题119) 输入格式 第一行,三个整数$T,M,N$. 接下来的$N$行,每行两个整数$u_i,v_i$($i$从$1$开始编号).允许$u_i=v_i$,也允许同样的简单词多次出现. ...

  9. 剑指offer32----之字形打印一颗二叉树

    题目 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 思路 在这里我们如果单纯的使用队列去弄的话,会很 ...

  10. MySQL中的exist与not exists

    准备数据 我们先介绍下使用的3个数据表: student数据表: course数据表: sc数据表: EXISTS EXISTS代表存在量词∃.带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真 ...