Day02:对象和类(下)
构造方法
什么是构造方法
在类实例化对象时运行的一种特殊的方法
为什么需要构造方法
构造方法适合为对象的属性赋初值
编写构造方法
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:对象和类(下)的更多相关文章
- Python-面向对象(类)二
一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...
- Python-面向对象(类)一
一.如何创建类 class cls: pass 二.创建方法 构造方法: __init__(self, arg) obj = 类('a1') 普通方法: obj = 类('xxx') obj.普通方法 ...
- CoreJava学习笔记1-基本概念、对象和类
一. java的基本程序设计结构 (一) java共有8种基本类型:4种整型,2种浮点类型,1种char,1种boolean. 1) 4种整型:byte(1).short(2). ...
- Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- winform中利用反射实现泛型数据访问对象基类(1)
考虑到软件使用在客户端,同时想简化代码的实现,就写了一个泛型的数据访问对象基类,并不是特别健全,按道理应该参数化的方式实现insert和update,暂未使用参数化,抽时间改进. /// <su ...
- Java对象与类中的一个小练习
一直在Eclipse里做练习.是做一个练习,执行一个的那种.刚刚学习了Java的对象与类,练习中把类和执行放在同一包下的两个.java文件里面了.是可以执行的.(Get) 相关代码: public c ...
- 关于Object类下所有方法的简单解析
类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直接来看jdk的源码,开始我们的分析之路 ...
- OLE:对象的类没有在注册数据库中注册
我在网上下载了破解版的SAS9.3,用了一段时间之后,今天打开就填出一个提示框:OLE:对象的类没有在注册数据库中注册 激活该对象所需的应用程序不可用.是否用"转换--"将其转换为 ...
- JAVA基础复习与总结<一> 对象与类的概念_内部类_继承与多态
一.对象与类 类:类是一个模版,它描述了一类对象的行为和状态. class animal { private int color; private int size; public void eat ...
随机推荐
- poj2279 Mr. Young's Picture Permutations[勾长公式 or 线性DP]
若干人左对齐站成最多5行,给定每行站多少个,列数从第一排开始往后递减.要求身高从每排从左到右递增(我将题意篡改了便于理解233),每列从前向后递增.每个人身高为1...n(n<=30)中的一个数 ...
- HTML5 Geolocation学习
GeolocationAPI学习,我写的挺枯燥的,直接跳到最后看示例. 5.1 位置信息 HTML5 Geolocation API的使用方法相当简单.请求一个位置信息,如果用户同意,浏览器就会返回位 ...
- Array、Set、Map、Object学习总结
Array和Set对比 都是一个存储多值的容器,两者可以互相转换,但是在使用场景上有区别.如下: Array的indexOf方法比Set的has方法效率低下 Set不含有重复值(可以利用这个特性实现对 ...
- select添加皮肤 jquery
由于select修改样式不能兼容浏览器,也不能随意修改,那么就需要模拟select,给select添加皮肤了,代码如下 <!DOCTYPE html> <html lang=&quo ...
- python查询mysql数据(3)
python查询mysql数据(3) """数据查询""" import pymysql import datetime from pymy ...
- 【Winform-ComboBox】实现ComboBox下拉框与数据库的绑定
实现效果如下: 1.设计窗体 下拉框的名称cmbName 2.连接数据库 DBHelper类代码: class DBHelper { /// <summary> /// 创建静态连接字符串 ...
- Struts2笔记(学struts2只需要这一篇文章)
1.如何将struts2框架引入到web项目中 1.把struts2相关jar包引入到项目中 2.把struts2的配置文件直接放到src下面,名字要叫做struts.xml.(运行时配置文 ...
- Confluence备份,数据迁移
一.Confluence的备份.恢复1)Confluence的备份 管理员账号登录Confluence,点击右上角的"一般配置"-"每日备份管理",如下图(默认 ...
- 数据聚类算法-K-means算法
深入浅出K-Means算法 摘要: 在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. K-Mea ...
- C++入门经典-例3.4-根据成绩划分等级
1:代码如下: // 3.4.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...