当前位置: 首页 > news >正文

瀑布流网站有哪些铜仁北京网站建设

瀑布流网站有哪些,铜仁北京网站建设,为什么没人做物流网站,制作相册影集软件一、前言 记录时间 [2024-05-10] 系列文章简摘#xff1a; Java 笔记 01#xff1a;Java 概述#xff0c;MarkDown 常用语法整理 Java 笔记 11#xff1a;Java 方法相关内容#xff0c;方法的设计原则#xff0c;以及方法的定义和调用 面向对象 01#xff1a;Java 面向对…一、前言 记录时间 [2024-05-10] 系列文章简摘 Java 笔记 01Java 概述MarkDown 常用语法整理 Java 笔记 11Java 方法相关内容方法的设计原则以及方法的定义和调用 面向对象 01Java 面向对象相关内容整体概述 面向对象 02区分面向过程与面向对象类和对象的关系 更多 Java 相关文章请参考专栏哦。 本文内容主要关于类与对象的创建、初始化和使用以及如何通过 new 关键字调用构造方法。此外文章还对无参 / 有参这两种构造器进行描述并通过内存分析创建对象的过程。 二、类与对象的创建 以类的形式组织代码以对象的形式封装数据。 1. 关键字 new 在 Java 中关键字 new 是一个非常重要的运算符。 使用 new 关键字创建对象时 为该对象分配进行内存分配给对象进行默认的初始化在类中使用构造器进行调用。 2. 关键字 this 在 Java 中关键字 this 是一个非常重要的引用它在类的方法或构造器中使用通常用于引用当前对象或当前实例的引用。 具体如下 引用当前对象 在类的内部this 关键字用来指代当前正在操作的这个类的对象实例。 当方法内部的局部变量与类的成员变量同名时this 可以帮助明确指代成员变量避免混淆。 例如 public class Person {String name;public void setName(String name) {// 这里的 this.name 指的是 Person 类的成员变量 namethis.name name; } }调用当前类的构造器 在一个构造器中可以使用 this 关键字调用本类中的其他构造器。这种机制简化了代码避免了重复初始化代码。 但是必须作为构造器的第一条语句并且只能在非静态构造器中使用。 例如 public class Person {String name;int age;public Person() {this(未知, 0); // 调用带有两个参数的构造器}public Person(String name, int age) {this.name name;this.age age;} }作为方法的参数传递 可以使用 this 关键字将当前对象作为一个参数传递给其他方法。 例如 先编写一个 Person 类在 introduce() 方法中调用 display() 方法并将当前类的对象作为参数传递。 public class Person {// Person 类中的 name 属性的对象是 zhangsanString name zhangsan;void display(Person friend) {System.out.println(朋友的名字是: friend.name);}void introduce() {display(this); // 将当前对象作为参数传递} }接着在 main ()方法中实例化一个 Person 类并调用该类中的 introduce() 方法得到输出结果。 public static void main(String[] args) {// 实例化一个 Person 类Person person new Person();// 调用该类中的方法person.introduce();}// 得到输出结果朋友的名字是: zhangsan返回当前对象的引用 在某些情况下可以让方法返回 this以便实现链式调用或者构建流式接口。 例如 public class StringBuilderExample {StringBuilder sb new StringBuilder();public StringBuilderExample append(String str) {sb.append(str);return this; // 返回当前对象允许链式调用} }3. 创建和初始化对象 在 Java 中创建和初始化对象是一个基本且核心的过程以下是创建和初始化对象的基本步骤。 准备学生类 在类中只能写属性和方法。 先准备学生类 Student 用于创建和初始化对象的演示。该类中包含 name 和 age 两个属性以及一个 study 方法。 // 学生类 public class Student {// 属性字段String name; // nullint age; // 0// 方法public void study() {System.out.println(this.name 在学习);} }创建和初始化 在 Application 类中创建 main 方法。注意一个项目应该只有一个 main 方法。 使用 new 关键字以及默认构造器创建 Student 对象。 在这个示例中为 Student 类创建了 xiaoming 和 zhangsan 两个对象并分别给它们赋值。 public static void main(String[] args) {// 类抽象的实例化// 类实例化后返回一个自己的对象// student 对象就是一个 Student 类的具体实例Student xiaoming new Student();Student zhangsan new Student();// 给 xiaoming 对象赋值xiaoming.name 小明;xiaoming.age 3;System.out.println(xiaoming.name);System.out.println(xiaoming.age);// 给 zhangsan 对象赋值zhangsan.name 张三;zhangsan.age 3;System.out.println(zhangsan.name);System.out.println(zhangsan.age);}使用 使用对象的属性student.name使用对象的方法student.study() 三、构造器 1. 构造器概述 在 Java 中类的构造器也称为构造方法是一种特殊类型的方法。 构造器的主要职责是初始化新创建的对象是在进行创建对象的时候必须要调用的。通过使用构造器开发者能够灵活地控制对象实例化的细节。 构造器具有以下特点和规则 名称匹配构造器的名称必须与类名完全相同这是区分构造器与其他方法的基本方式。无返回类型构造器没有返回类型声明即使它实际上隐式地返回了新创建的实例的引用也不需要像普通方法那样声明一个返回类型。自动调用每当使用 new 关键字创建类的实例时相应的构造器会自动被调用。初始化构造器的主要任务是对新创建对象的成员变量进行初始化可以设置默认值或者基于传入参数进行特定的初始化。重载构造器支持重载意味着在同一个类中可以有多个构造器只要它们的参数列表不同即可。这样可以根据不同的场景提供多种初始化方式。默认构造器如果一个类没有定义任何构造器Java 编译器会自动为该类生成一个默认无参数构造器。 注意一旦为类定义了一个或多个构造器编译器就不会再自动生成默认构造器。 2. 无参 / 有参构造器 下面是一个简单的 Java 类及其无参 / 有参构造器的示例 public class Student {String name;int age;// 默认构造器public Student() {this.name 匿名;this.age 0;}// 带参数的构造器public Student(String name, int age) {this.name name;this.age age;}// 其他方法... }在这个例子中Student 类有两个构造器 一个是无参数的默认构造器用于创建一个名字默认为匿名、年龄默认为 0 的学生对象另一个构造器接受两个参数允许在创建对象时指定学生的姓名和年龄。 3. 构造器的作用 使用 new 关键字本质上是在调用构造器构造器一般用于初始化值。可分为无参构造和有参构造。 无参构造 一个类即使什么都不写它也会有一个默认构造方法即无参数构造器。 例如Person 类中的构造默认构造器 Person()。当 Person 类中没有写构造方法时Person() 默认存在。 public Person() { }当然我们可以显式地定义构造器使其具备实例化初始值的功能。 如图所示在默认构造器中为 name 属性赋初值。 public Person() {this.name yuanyuan; }当使用 new 关键字实例化 person 对象时它会调用默认构造器并为 name 属性赋初值 yuanyuan所以 person.name 的值为 yuanyuan。 有参构造 一旦定义了有参构造Java 就不会默认生成无参构造器。因此此时无参构造需要显式定义。 生成一个带参构造器快捷键 altinsert或者右键 Generate // 使用 altinsert 快速生成构造器 public Person(String name) {this.name name; }使用 new 关键字实例化对象的同时传递值 Person person1 new Person(zhangsan);它会调用带参构造器并为 name 属性赋初值 zhangsan所以 person1.name 的值为 zhangsan。 四、内存分析 1. 以 Pet 类为例 准备一个 Pet 类 public class Pet {String name;int age;public void shout() {System.out.println(叫了一声);} }2. 内存分析 在 Java 中创建对象的过程涉及内存管理的几个关键区域主要包括栈内存、堆内存和方法区。 第一步 在代码中声明一个对象变量时比如 Pet pet;变量 pet 会被分配在栈内存中。此时变量 pet 仅是一个引用可以理解为一个地址并没有指向实际的对象。 第二步 使用 new 关键字创建对象如 pet new Pet(); 时Java 在堆内存中分配一块足够大的内存空间来存放 Pet 对象的所有实例变量。 这些实例变量包括基本类型以及引用类型。 创建后这些实例变量被默认初始化基本类型的默认值如 int0, booleanfalse 等引用类型为 null 值。 同时相应的构造器会被执行用于初始化这些实例变量如果有的话。构造器可以设置初始值执行一些初始化逻辑等。 第三步 完成对象创建和初始化后堆内存中对象的地址会被复制给栈内存中的变量 pet。 此时pet 变量就指向了堆内存中的实际对象。 第四步 可以使用对象中的属性和方法。比如分别给 Pet 类的 dog 对象和 cat 对象的属性 name 赋值。 Pet dog new Pet(); Pet cat new Pet();赋值方法 dog.name旺财; cat.name喵喵;接着分别调用 shout() 方法 dog.shout(); cat.shout();其他 类的元数据如类名、父类、实现的接口、静态变量、静态方法等存储在方法区或元数据区。 当类第一次被加载时其相关信息就会被放入此区域。构造器的信息也位于此区域。 通过这个过程Java 确保了对象的创建是安全且高效的同时也支持了垃圾回收机制自动管理不再使用的对象所占用的内存空间。 此处附上一张创建对象内存分析的配图来源于《狂神说 Java》配图。 主要是为了说明为什么不同的对象调用同一个类的同一个属性比如 namedog.name 和 cat.name 是不一样的。 五、总结 本文内容主要关于类与对象的创建、初始化和使用以及如何通过 new 关键字调用构造方法。此外文章还对无参 / 有参这两种构造器进行描述并通过内存分析创建对象的过程。 一些参考资料 狂神说 Java 零基础https://www.bilibili.com/video/BV12J41137hu/ TIOBE 编程语言走势 https://www.tiobe.com/tiobe-index/ Typora 官网https://www.typoraio.cn/ Oracle 官网https://www.oracle.com/ Notepad 下载地址https://notepad-plus.en.softonic.com/ IDEA 官网https://www.jetbrains.com.cn/idea/ Java 开发手册https://developer.aliyun.com/ebook/394 Java 8 帮助文档https://docs.oracle.com/javase/8/docs/api/
http://www.zqtcl.cn/news/57481/

相关文章:

  • 合肥网站建设团队免费搭建网站模板
  • 建设银行网上银行网站网线制作实验总结
  • 搬家网站怎么做wordpress 500 php版本
  • 可以做ppt的网站有哪些方面南宁小程序开发网站建设公司
  • 网站建设主要营销内客微网站和app的区别
  • 网站做法软件外包价格一般多少
  • 美容产品网站建设多少钱怎样做信息收费网站
  • 做网站哪里便宜厦门自己建网站
  • 餐饮网站建设优化建站宁波建设监理管理协会网站
  • 网站制作最域名过期了被别人拿去做违法
  • 网站开发和软件开发含义做赚钱问卷调查的网站
  • 大连哪家做网站比较好公总号开发就是网站开发吗
  • 雅客网站建设管理系统英文
  • 玩网页游戏的网站网站数据采集怎么做
  • 东莞网站建设dgjwz网站所有权
  • 广西建设职业技术学院网站企业网站建设的必要性及维护
  • 汉力建设网站免费查企业信息的平台
  • 如何建设购物网站做网站网站牟利200万判刑
  • 开发网站好还是app怎么增加网站流量
  • 阿里云企业建站教程求一个旅游网站的代码
  • 做网站找哪家好要钱吗浙江可以做会计题目的网站
  • 栾城区住房建设局官方网站向雅虎提交网站
  • 网站团购活动页面怎么做网站开发商城实例
  • 三门峡网站建设公司申请网站建设申请理由
  • 贴吧网站建设公司管理系统有哪些
  • 佛山网站公司建设网站电脑在局域网做网站
  • 对接公众号的网站怎么做seo推广优化找stso88效果好
  • 如何做网站模特做天猫还是做网站推广
  • wordpress自定义页seo技术优化服务
  • 企业网站建设内容报价刀客源码网