学会类和方法的定义后,我们就可以使用类来声明变量了,用类声明的变量被称为对象,用类声明对象后必须创建对象(为对象分配所用的变量)

类是创建对象的模板,当使用一个类创建一个对象时,也称给出个这个类的一个实例

第一步,先学习构造方法
1、构造方法是类中一个特殊的方法,构造方法的名字必须和其类名相同,并且没有类型。
2、一个类中可以有多个构造方法,但必须保证它们的参数不同(参数的个数不同,或参数的个数相同,但某个参数的类型不同)。
3、若类中没有编写构造方法时,系统会默认生成一个构造方法,并且是无参数,方法体中也没有语句的。

class Point
{int x,y;Point()        //构造方法一,若没有编写下面两个构造方法,系统会自动生成此默认的构造方法{}Point(int a)      //构造方法二{x = a;}Point(int a,int b)      //构造方法三{x = a;y = b;}}

说明一下:
1、如果类中没有自己编写构造方法,那么系统会自动生成构造方法:无参无语句的构造方法
2、如果类中定义了一个或者多个构造方法,那么系统不会提供默认的构造方法
3、构造方法没有类型 void Point(int a,int b) 是错误的

知道了构造方法,那么构造方法是拿来干吗用的呢?
顾名思义,构造方法是拿来构造对象也称创建对象的。

第二步:创建对象

创建对象包括对象的声明为对象分配变量

1、对象的声明:类的名字 对象的名字;
如: Point one_point;

2、为声明的对象分配变量(创建对象):使用new运算符和构造方法

这里我们拿上一步的Point类来说明

public class Example_1
{public static void main(String args[]){Point one_point,two_point;   //声明两个对象one_point = new Point();  //使用构造方法一two_point = new Point(5,6)    //使用构造方法二//可以把声明和创建写成一步//Point one_point = new Point();}
}

这里我们简单分析一下
1、第一步:我们声明了两个对象one_point和two_point,因为只是声明,这个对象中还没有任何数据,此时都只是空对象。

空对象不能引用,因为它没有任何"实体",必须再进行为对象分配变量的操作(也就是使用构造方法)

2、第二步:我们分别使用了new运算符和两个不同的构造方法
new Point(5,6);系统会做下列两件事

(1)为x,y两个变量分配内存。如果成员变量在声明时没有指定初值,整型的成员变量默认为0,浮点型为0.0,boolean默认是false,引用型默认是null

(2)new运算符为变量x,y分配内存后,计算出一个称作引用的值(包含变量内存位置和相关信息),如果把这个值赋给two_point"
two_point = new Point(5,6);
那么系统分配的x,y的内存单元由two_point()进行管理
x,y属于对象two_point的实体

总结一下:
1、所谓创建对象,就是为对象分配变量,并获得一个引用,确保这些变量由该对象来操作管理
2、new 运算符只能和类的构造方法进行运算,最后的结果是一个十六进制数,称作对象的引用,把这个引用赋给一个对象(由类声明的对象变量 如 Point two_point)这个对象就拥有了这些被分配内存的成员变量

通过例子加深印象吧

class People
{int height;
}class Cat
{String ear;Cat(String a){ear =a;}
}class Example_2
{public static void main(String args[]){People Li_Ming;Li_Ming = new People(); //使用默认的构造方法创建对象//以上两句等同于People Li_Ming = new People();//虽然People类没有定义构造方法,但是系统会自动生成默认的构造方法(无参无语句)//这时Li_Ming这个对象就拥有一个值为0的变量height;(没有定义初值,系统会进行默认赋值)Cat miao = new Cat("猫有两只耳朵");//使用自己编写的构造方法(自己编写构造方法后,系统不提供默认的构造方法)//这时miao这个对象拥有一个"猫有两只耳朵"的字符串变量ear.}
}

Java学习之类(三):构造方法和创建对象相关推荐

  1. Java学习 第三章 数组(三)排序算法

    ** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...

  2. invader的java学习第三天基础篇

    invader的java学习第三天基础篇 一.整数的取值范围表 类型名称 数据类型 所占空间 表数范围 字节型 byte 1字节 -128-127 短整型 short 2字节 +-3w(-2^15-2 ...

  3. java学习笔记(三):前端miniUI控件库入门

    java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...

  4. Java学习(三)JSP学习1

    一.  理解JSP技术 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与 ...

  5. Java学习 第三章 Steam输入输出流

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  6. JAVA学习 第三章作业

    1.程序填空题: 定义一个抽象类Person,其中有一个公共的抽象方法showInfo().然后定义此抽象类的一个子类Student,包括的成员变量有姓名.学号.班级和年龄,且此类中包括两个构造方法. ...

  7. 1.3(java学习笔记)构造方法及重载

    构造方法,用于对象的初始化,在创建对象时被自动调用的特殊方法.构造方法名称与类名一致,通过new调用. 下面通过代码来详细讲解 1 public class Point { 2 int x, y; 3 ...

  8. java注解和反射——狂神说java学习笔记三

    原文链接:公众号狂神说 视频教程[狂神说B站]: https://www.bilibili.com/video/BV12J41137hu 如有侵权,联系立删 什么是注解 Annotation是从JDK ...

  9. java学习笔记(三)----成员权限,构造函数,this用法

    成员权限                         本类    同包类    非同包子类    非同包非子类 public         y        y               y  ...

最新文章

  1. SpringBoot注解大全 转
  2. Windows下安装XAMPP,Wordpress
  3. python3 numpy. ndarray 与 list 互转方法
  4. Android 启动白屏,简单解决方法
  5. Python数模笔记-PuLP库(1)线性规划入门
  6. Yaf框架视频教程之入门篇【已完成】
  7. 【题解】Grape luogu1156改 dp
  8. 阿里芯片大动作!NPU明年6月发布,“平头哥”研发量子芯片
  9. 2017上海ACM ECL-final 总结
  10. centos6.5 mysql登陆_centos6.5下mysql无法登陆的问题
  11. 使用rsyslog+loganalzey收集日志显示客户端ip
  12. python marshal 对象序列化和反序列化
  13. 推荐好用的Linux远程连接工具
  14. 02、差分特性阻抗仿真
  15. 《电脑十万个为什么》 第四卷 第一章
  16. 天耀18期 - 10.字符串常用方法【作业】
  17. 业界首个,冲量在线联合海光信息发布异构隐私计算一体机!
  18. 利用jsp内置对象实现的简易聊天室
  19. 【结构体】 结构体引用、结构体数组指针、包含结构的结构体
  20. 山大计算机学院陈竹敏年龄,第十八届全国自然语言处理青年学者研讨会在山东青岛顺利召开...

热门文章

  1. happypack两次报错的问题
  2. 更强大的下载神器——Motrix
  3. 计算机出现假桌面怎么解决办法,apphangxprocb1导致停止与Windows进行交互?桌面频繁假死解决方法...
  4. 从EBI下载ENA数据
  5. Android Stuido 配置2.8版本Genymotion步骤
  6. Rundeck基础:4:基础概念:操作操作Node
  7. fman后续20210206
  8. nginx端口映射 nginx反向代理配置
  9. Nginx日志分析工具-GoAccess使用详解
  10. 7-14 然后是几点