类与对象的创建、构造器详解、创建对象内存分析 2021-11-27
2021/11/29 7:09:58
本文主要是介绍类与对象的创建、构造器详解、创建对象内存分析 2021-11-27,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Day23
类与对象的创建
类与对象的关系
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不代表某一个具体事物。
对象是抽象概念的具体实例。
创建与初始化对象
- 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认初始化以及对类中构造器的调用。
- 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回值类型,也不能写void
构造器必须掌握
默认初始化例子:
package com.opp.demo02; //学生类 public class Student { //属性:字段 String name;//null int age; //0 //方法 public void study(){ System.out.println(this.name+"在学习"); } }
package com.opp.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类:抽象的,需要实例化 //类实例化后返回一个自己的对象 //student对象就是一个Student类的具体实例 Student xiaoming = new Student(); Student xiaohong = new Student(); System.out.println(xiaoming.name); System.out.println(xiaoming.age); } }
赋值例子:
package com.opp.demo02; //学生类 public class Student { //属性:字段 String name;//null int age; //0 //方法 public void study(){ System.out.println(this.name+"在学习"); } }
package com.opp.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类:抽象的,需要实例化 //类实例化后返回一个自己的对象 //student对象就是一个Student类的具体实例 Student xiaoming = new Student(); Student xiaohong = new Student(); xiaoming.name="小明"; xiaoming.age=20; System.out.println(xiaoming.name); System.out.println(xiaoming.age); xiaohong.name=("小红"); xiaohong.age=(23); System.out.println(xiaohong.name); System.out.println(xiaohong.age); } }
构造器详解
构造器作用
- 使用new关键字,本质是在调用构造器
- 用来初始化值
用idea打开class文件的方法
1.
2.在modules把out根目录添加然后OK
3.会生成一个out目录
4.第一,会默认加一个方法,没有返回值类型,第二,方法名必须和类的名字相同
package com.oop.demo02; //java-->class public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //构造器作用:实例化初始值 public Person(){ } }
package com.oop.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //new 实例化一个对象 Person person = new Person(); System.out.println(person.name); //null } }
用this关键字可以直接输出
package com.oop.demo02; //java-->class public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //构造器作用:实例化初始值 //1.使用new关键字,本质是在调用构造器 // public Person(){ // this.name = "xiaoxiao"; // } //有参构造:一旦定义了有参构造, //无参就必须显示定义,否则会报错 public Person(String name){ this.name = name; } }
package com.oop.demo02; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //new 实例化一个对象 Person person = new Person(); System.out.println(person.name);//xiaoxiao } }
无参构造没有方法体的时候调用的话就是null
记住一个快捷键
alt+insert 自动生成有参、无参构造
生成有参构造的具体方法如下:
-
按alt+insert,然后回车
-
点击OK就可以自动生成一个有参构造
生成无参构造的具体方法如下:
- 按alt+insert,然后回车
- 点击OK就可以自动生成一个无参构造
小结
构造器:
1.和类名相同
2.没有返回值
作用:
1.new本质在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,
显示的定义一个无参的构造
alt + insert
this. 代表当前类 后面等于的值是参数传进来的值
创建对象内存分析
package com.oop.demo03; public class Pet { public String name; public int age; //无参构造 public void shout(){ System.out.println("叫了一声"); } }
package com.oop.demo02; import com.oop.demo03.Pet; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { Pet dog = new Pet(); dog.name = ("豆豆"); dog.age = 3; dog.shout(); System.out.println(dog.name); System.out.println(dog.age); } }
内存分析图
这篇关于类与对象的创建、构造器详解、创建对象内存分析 2021-11-27的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性