【Java】类和对象

类和对象

类:类是描述一个对象的;

对象:对象是类产生的实体


一般一个文件中只定义一个类;

类的组成:

  1. 成员变量(也叫做属性、字段):定义在方法的外部,类的内部;
  2. 成员方法:定义在类中;
public class Student {// 定义成员变量、字段、属性public String name;public int age;public String sex;// 定义成员方法public void DoHomework() {System.out.println(name + "写作业");}public void DoClass() {System.out.println(name + "去上课");}
}

类的实例化(实例化对象)

 类名 对象名 = new 类名(); 

  1. 类创建对象的过程就是类的实例化;
  2. 这里的对象属于引用类型,通过关键字new可以实例化多个对象
  3. 只要new就会产生新的对象,只要有新的对象在堆上就有新的空间
  4.  类名 对象名 = new 类名(); 就是实例化对象

对象名.成员变量/成员方法;

对象通过.来访问对象中的成员变量和成员方法;

public static void main(String[] args) {Student student = new Student(); // 类的实例化// student对象通过.来访问成员变量和成员方法student.name = "张三";student.age = 19;student.sex = "男";student.DoHomework();student.DoClass();}

 构造方法

  1. 构造方法是一个特殊的方法,方法没有返回值,方法名和类名一样
  2. 构造方法至少有一个,在没有写任何构造方法的时候,编译器(Java)会自带一个无参的数的构造函数;
  3. 但是一旦写了任何一种构造方法,编译器就不会提供任何一个构造方法;
  4. 实例化对象时,构造方法就会被调用(构造方法的调用是发生在实例化对象的时候);
  5. 构造方法在整个生命周期中只调用一次;
  6. 构造方法可以重载;
  7. 对象的产生有两步:1、为对象分配内存;2、调用适合的构造方法;
  8. 快捷创建构造方法:右键 -> generate -> constructor -> 选择什么参数的构造方法;

构造方法的作用:就是对对象中的成员进行初始化,并不负责给对象开辟空间。


this引用

  1. this.成员变量;// 表示当前对象的成员变量,this就表示当前对象;
  2. this.成员方法;// 访问当前类的成员方法;
  3. this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型;
  4. this只能在"成员方法"中使用, 在"成员方法"中,this只能引用当前对象,不能再引用其他对象;


构造方法中的this引用 —— this();

this(参数值1,参数值2,...); // 这条语句必须位于构造方法的第一句;

this(); 的用法:在无参构造函数中调用含有参数的构造函数;// this();进行赋值必须按顺序进行赋值;

// 构造方法public Student() {// this("张三");  //this()等价与下面的初始化// this.name = "张三";this("李四",19,"男"); // this()等价与下面的初始化this.name = "李四";this.age = 19;this.sex = "男";}public Student(String name) {this.name = name;}public Student(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法练习Day39】单词拆分多重背包的介绍

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 单词拆分多重背包总结&…

【iOS】知乎日报前三周总结

这几天一直在进行知乎日报的仿写,仿写过程中积累了许多实用的开发经验,并对MVC有了更深的了解,特撰此篇作以总结 目录 第一周将网络请求封装在一个单例类Manager中SDWebImage库的简单使用运用时间戳处理当前时间自定义NavigationBar 第二周在…

轻量封装WebGPU渲染系统示例<12>- 基础3D对象实体(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/main/src/voxgpu/sample/PrimitiveEntityTest.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 细节请见:引擎系统设计思路 - 用户态与系统态隔离-CSDN博客 2. 高频调用与低频调用隔…

基于STM32设计的室内环境监测系统(华为云IOT)_2023

一、设计需求 基于STM32+华为云物联网平台设计一个室内环境监测系统,以STM32系列单片机为主控器件,采集室内温湿度、空气质量、光照强度等环境参数,将采集的数据结果在本地通过LCD屏幕显示,同时上传到华为云平台并将上传的数据在Android移动端能够实时显示、查看。 【1…

小程序制作(超详解!!!)第十二节 循环求和计算器

1.index.wxml <view class"box"><view class"title">利用循环语句求和</view><view><input placeholder"请输入起点数值" type"number" bindblur"starNum"></input><!--一旦失去交…

个人服务器到期,项目下线,新的开始

告别旧服务器 2023.11.06服务器到期&#xff0c;所有项目正式下线 时间真的过的很快&#xff0c;从开始踏入编程的大门&#xff0c;到现在不知不觉已经陆续经手了两台服务器了&#xff0c;目前这台服务器是一年前的阿里云活动白嫖的嘿嘿嘿&#xff0c;该服务器上目前运行的项…

C++初阶-类和对象(中)2

类和对象&#xff08;中&#xff09;2 一、赋值运算符重载运算符重载赋值运算符重载前置和后置重载 二、日期类的实现三、const成员四、取地址及const取地址操作符重载 一、赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊…

python 机器学习 常用函数

一 np.random.randint "randint" 是 "random integer" 的缩写&#xff0c;表示生成随机整数。 np.random.randint 是 NumPy 库中的一个函数&#xff0c;用于生成随机整数。以下是该函数的一般语法&#xff1a; np.random.randint(low, high, size)其中…

开发一款直播弹幕游戏需要多少钱?

开发一款直播弹幕游戏需要多少钱&#xff1f;有好多朋友在咨询过弹幕游戏的开发价格后&#xff0c;都会比较吃惊&#xff0c;一款体量这么小的游戏为什么动辄就要几万块甚至十几万&#xff1f; 我来给你们说分析一下原因&#xff0c;这种游戏如果脱离开直播间&#xff0c;可以…

MQTT协议零基础快速入门

MQTT协议零基础快速入门 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的发布/订阅消息传输协议&#xff0c;广泛应用于物联网&#xff08;IoT&#xff09;和机器对机器&#xff08;M2M&#xff09;通信场景。它具有简单、开放、易于实现等优…

Qt登录界面

头文件&#xff1a; #ifndef QDLGLOGIN_H #define QDLGLOGIN_H#include <QDialog>namespace Ui { class dlgLogin; }class QDlgLogin : public QDialog {Q_OBJECTprivate:bool m_movingfalse;//表示窗口是否在鼠标操作下移动QPoint m_lastPos; //上一次的鼠标位置Q…

MySQL进阶_5.逻辑架构和SQL执行流程

文章目录 第一节、逻辑架构剖析1.1、服务器处理客户端请求1.2、Connectors1.3、第1层&#xff1a;连接层1.4、第2层&#xff1a;服务层1.5、 第3层&#xff1a;引擎层1.6、 存储层1.7、小结 第二节、SQL执行流程2.1、查询缓存2.2、解析器2.3、优化器2.4、执行器 第三节、数据库…