初学Java基础Day13---初识面相对象 构造方法

一,初识面相对象

1.类

相当于是一个模版,刻画出具有相同特征和操作的实体(事物)

2.成员属性/成员变量

注意:属于对象的变量,系统会默认赋值,该类所有的成员,方法都能使用 该变量;静态方法不能使用成员变量。

成员变量的默认值:

整数数据类型默认值:0; ps: int [] is =new int[5];--->底层为:[0,0,0,0,0]

浮点数数据类型默认值:0.0

字符类数据类型默认值:' ' (空格)

布尔类型数据默认值:false

引用数据类型默认值:null (空) ps: String ss = new String[5]; ---> [null,null,null,null,null]

回顾:局部变量

方法里面的变量,必须初始化后(int i=10),才能使用,其作用域在方法内

3.步骤:

        1.创建对象----操作对象------设置属性,获取属性,调用方法。

4.案例
//需求:创建人类的对象,并操作对象;
//分析:人类-Person ; 属性:name,sex,age; 方法:eat,sleeppublic class Test01{public static void main(String[] args){//创建对象Persoon p  =new Person();//设置属性p.name= "周杰伦";p.age = "18";p.sex = '男';//获取属性System.out.println(p.name);System.out.println(p.sex);System.out.println(p.age);//调用成员方法//注意:成员方法使用引用/对象调用对象p.eat();p.sleep();//调用静态方法//注意:静态方法使用类名去调用Person.method();}
}//一个“人” 的类
public class Person{//成员属性String name;int age;char sex;//成员方法public void eat(){System.out.println("吃饭");}public void sleep(){System.out.println("睡觉");}public static void method(){System.out.println("静态方法");}
}
总结:

1.使用到类,JVM就会把该类的class文件加载到方法区,扫描该类的字面值常量,将字面值常量加载到常量池中

2.new对象会在堆中开辟空间,用于存储对象里的成员变量,系统会贼默认值

3.引用中存储的是对象在堆中的地址 (0x001)

4.调用方法,就会在栈开辟空间,该空间存放方法的局部变量,方法执行完毕该空间会立刻回收

5.class文件中存放了该类所有的信息(属性、成员方法、静态方法)

5.创建多个对象
//需求:创建人类对象,并操作对象
//场景:创建多个对象,去操作对象//测试类:该类中有main方法,测试我们写好的代码
public class Test01{public static void main(String[] args){Person p1 = new Person();Person p2 = new Person();p1.name="周杰伦";p1.age = 18;p1.sex='男';p2.name="陈奕迅";p2.age = 19;p2.sex ='男';p1.eat();p1.sleep();p2.eat();p2.sleep();}}public class Person{String name;int age;char sex;public void eat(){System.out.println(this.name+"吃饭");}public void sleep(){System.out.println(this.name+"睡觉");}public static void method(){System.out.println("静态方法");}
}
小结:

1.class文件只加载一次

2.class文件中包含了该类所有的信息

3.new对象会在堆中开辟空间,存放成员变量

4.成员变量系统会赋默认值

5.每个对象独享一-份成员变量

6.方法中的this表示调用该方法的对象

7.成员方法可以使用this

8.静态方法使用类名调用,所以方法内不能使用this

二,构造方法

注意:创建对象的过程( Person p=new Person(); ),也叫做实例化;

创建对象的语法: 类型 引用=new 构造方法;

作用:1.和new关键字在一起表示创建对象;2.初始化数据

构造方法的含义:与类名相同,且没有返回项的方法。

注意:当类中没有有参构造时,系统会默认实现无参构造

1.无参构造
public class Test01{public static void main(String[] args){Person p1 = new Person();Person p2 = new Person();p1.name="周杰伦";p1.age = 18;p1.sex='男';p2.name="陈奕迅";p2.age = 19;p2.sex ='男';p1.eat();p1.sleep();p2.eat();p2.sleep();}}public class Person{String name;int age;char sex;//构造方法-无参构造public Person(){System.out.println("无参构造");//可以初识化数据//this.name="默认值";//this.age =0;//this.sex = '男';}public void eat(){System.out.println(this.name+"吃饭");}public void sleep(){System.out.println(this.name+"睡觉");}public static void method(){System.out.println("静态方法");}
}
2.有参构造
public class Test01{public static void main(String[] args){Person p = new Person("周杰伦",18,'男');System.out.println(p.name);System.out.println(p.age);System.out.println(p.sex);p1.eat();p1.sleep();}}public class Person{String name;int age;char sex;//构造方法-有参构造public Person(String name,int age,char sex){System.out.println("有参构造");this.name=name;this.age =age;this.sex = sex;}public void eat(){System.out.println(this.name+"吃饭");}public void sleep(){System.out.println(this.name+"睡觉");}public static void method(){System.out.println("静态方法");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558909.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

安装echarts报错:request to https://registry.npmjs.org/echarts-gl failed

Hello!欢迎各位新老朋友来看小弟博客,祝大家事业顺利,财源广进!! 主题:安装echarts报错:request to https://registry.npmjs.org/echarts-gl failed 第一:报错问题:链接…

Codeforces Round 923 (Div. 3) F. Microcycle

题目 【坑点】:不能先用拓扑排序去掉“线头”,然后找权重最小的边所在的环。因为去掉线头后,可能有的边不在环内。 e.g.有六条无向边 1 - 2 , 2 - 3, 1 - 3, 4 - 5, 5 - 6, 4 - 6, 1 - 4, 边1 - 4不在环内 wa代码: #include &…

【FPGA开发】Modelsim仿真精度的坑

问题所在 最近在使用黑金的AXU3EG板卡对着正点原子ZYNQ7020的例程进行移植学习。但在编写tb代码以及使用modelsim进行仿真时出了问题,发现我的实际波形与正点的对不上,仔细测量一下波形发现,我的系统时钟是6ns周期,而不是理想中的…

儿童(青少年)可以参加哪些含金量高的比赛?

随着素质教育的推进,越来越多的家长和老师开始关注如何培养孩子的综合素质和能力。而参加各类比赛,不仅可以锻炼孩子的思维、动手能力和团队合作精神,还能帮助孩子在学习的过程中找到兴趣点和成就感。尤其是一些含金量高的比赛,不…

QT实现QMessageBox中文按钮

这是我记录Qt学习过程心得文章的第二篇,主要是为了方便QMessageBox弹出框的使用,通过自定义的方式,将其常用的功能,统一封装成一个函数,还是写在了Skysonya类里面。 实现代码: //中文提示对话框 bool Sky…

DAMA数据管理知识体系(第12章 元数据管理)

课本内容 12.1 引言 图12-1 语境关系图:元数据概念理解 元数据的信息范围很广,不仅包括技术和业务流程、数据规则和约束,还包括逻辑数据结构与物理数据结构等。它描述了数据本身(如数据库、数据元素、数据模型)&#x…

noexcept

作用 性能优化:当一个函数声明为noexcept时,编译器可以假设该函数不会抛出异常,从而避免生成与异常处理相关的额外代码。这可以减少程序的运行时开销,特别是在那些不使用异常的代码路径上。 使用 通const一样,声明和…

java动态规划背包问题

代码功能 在不超过给定背包容量(capacity)的前提下,从一系列具有特定重量(weights)和价值(values)的物品中选择若干物品,使得这些物品的总价值最大化。 类定义:定义了一…

C++实现AVL树增删查

目录 1. AVL的概念 (1)名字的由来 (2)什么是AVL树 (3)实现方法 (4)为什么高度差是1 (5)对比二叉搜索树 2. AVL树的结构 3. AVL树的功能 (1…

芝法酱学习笔记(0.7)——harbor与项目容器化部署

前言 之前我们主要讲的jar包部署。使用jar包部署可能导致不同服务互相争抢资源(隔离性),不同服务可能需要不同的jdk环境,有时也会造成困扰。故在微服务时代,我们通常使用docker部署 一、docker安装 docke相关的知识…

新硬盘第一次使用需要怎样做?

无论是组装新电脑,还是给现有电脑增加存储空间,我们需要进行一些安装硬盘和设置硬盘的操作。对于没有相关经验的用户来说,对于拿到手的新硬盘会感到手足无措,不知道应该从哪里开始。今天小编详细介绍一下新硬盘第一次使用时的流程…

Qt-窗口布局按钮输入类

1. 窗口布局 Qt 提供了很多摆放控件的辅助工具(又称布局管理器或者布局控件),它们可以完成两件事: 自动调整控件的位置,包括控件之间的间距、对齐等; 当用户调整窗口大小时,位于布局管理器内的…

AI没有是非观的原因

人工智能没有价值观的原因主要可以归结为只有数据驱动的被动性相关算法,没有主动干预性及其反事实关系: (1)数据被动驱动 AI的学习、分析、预测只依赖于大量的数据,并通过模式识别和统计分析建立关联。而这些数据本身可…

【算法】链表:2.两数相加(medium)+模拟

系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法 (模拟) 4、代码 1、题目链接 2. 两数相加 - 力扣(LeetCode) 2、题目介绍 3、解法 (模拟) 理解题目要求: 我们有两个链表,每个链表代表一个…

51单片机-第十四节-AD/DA(XPT2046触摸屏)

一、AD/DA介绍: AD:模拟-数字转换,将模拟信号转换为计算机可操作的数字信号。 DA:数字-模拟转换,将计算机输出的数字信号转换为模拟信号。 二、运算放大器: 1.介绍: (1&#xf…

给网站加加速!下一代CDN(EdgeOne/边缘安全加速)使用与配置体验

随着访问量的增加和用户需求的多样化,服务器的带宽有限,面对一些图片数据,显得“力不从心”。CDN技术,就很好的解决了这个问题,但是价格也是用户思考的问题。 EdgeOne不仅继承了传统CDN的核心优势,更在速度…

uni-app 开发的应用快速构建成鸿蒙原生应用

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,它支持编译到 iOS、Android、小程序等多个平台。对于 HarmonyOS(鸿蒙系统),uni-app 提供了特定的支持,允许开发者构建鸿蒙原生应用。 一、uni-app 对 HarmonyOS 的支…

【用户管理 添加用户 超级用户 用户和组】

用户管理 添加用户超级用户用户和组 添加用户 介绍用户的管理操作 比如,添加一个用户 sudo useradd -m test1 其中,sudo表示管理员身份运行 修改用户密码 sudo passwd test1 删除用户 sudo userdel test 超级用户 1.首次使用时,需要给roo…

以光塑形:光固化3D打印机原理图文解析

公众号端: 光固化打印机介绍https://mp.weixin.qq.com/s?__bizMzkwMjc0MTE3Mw&mid2247484073&idx1&sn0d0fd026b373b06cd7c340ec8f56a006&chksmc0a1af73f7d62665a632baebbde4e5e00ffb9c6bd31bf547b4a86855d5524535619a6175a428#rd 光固化打印机…

IDEA上Mybatis介绍和使用

MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。 创建项目 在springboot项目中添加Mybatis和MySQL依赖项。 找到数据库选项,点击新建 -> 数据库源,选择MySQL。 输入完成信息后,可以先进行测试,可以成功连接再…