Java基础语法(六)| 类和对象

前言

Hello,大家好!很开心与你们在这里相遇,我是一个喜欢文字、喜欢有趣的灵魂、喜欢探索一切有趣事物的女孩,想与你们共同学习、探索关于IT的相关知识,希望我们可以一路陪伴~

1. 面向对象概述

1.1 什么是面向对象

Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。

1.2  面向过程与面向对象

  • 面向过程

完成一个功能时,功能的每一个步骤,都需要开发者进行参与,每一个细节都需要了解清楚,才能完成。强调的是代码过程。

  • 面向对象

强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。

 示例:

  • 洗衣服

面向过程

把衣服脱下来-->找一个盆-->放点洗衣粉-->加点水-->浸泡10分钟-->揉一揉-->清洗衣服-->拧干-->晾起来

面向对象

把衣服脱下来 --> 打开全自动洗衣机 -->扔衣服 --> 按钮 --> 晾起来

2. 类和对象

  •  什么是类

是一组相关属性行为的集合。类就是现实生活的一类事物,事物由属性和行为组成。

【类就是描述现实生活中的某一个事物,这个事物是由属性和行为组成】

属性:该事物的状态信息。

行为:该事物能够做什么。

  •  什么是对象

对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性和行为。

  •  类与对象的关系

类是对一类事物的描述,是抽象
对象是一类事物的实例,是具体
类是对象的模板,对象是类的实体

类:学生                                          汽车图纸
对象: 班长(一个具体的对象)        大众   宝马   MG

2.1 类的定义

  • 类的组成是由属性和行为两部分组成

  • 属性:在类中通过成员变量来体现(类中方法外的变量)

  • 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可

  •  类的定义格式
public class 类名 {
	//成员变量 --属性
	//成员方法 --行为
}
  • 示例--定义学生类

public class Student {
    //属性:该类本身所具有的
    String name;
    String sex;
    int age;

    //行为:该类能干什么事情
    public void study(){
        System.out.println(name+":学生可以学习");
    }

    public void eat(){
        System.out.println(name+": 学生干饭");
    }
}

2.2 对象的使用

  • 创建对象格式

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

  • 访问类中的成员

对象名.成员变量;
对象名.成员方法();

  •  代码示例:
    public static void main(String[] args) {
        //创建对象 实例化对象
        Phone p = new Phone();

        //给属性赋值
        p.brand = "华为";
        p.price = 8999;
        p.color ="金色";

        //拿到属性赋值之后的内容
        System.out.println(p.brand);
        System.out.println(p.price);
        System.out.println(p.color);

        //调用方法,还可传递参数
        p.call("小可爱");
        p.watch();
    }
}

 2.3 成员变量与局部变量

  • 成员变量的默认值

  • 成员变量&局部变量
/**
 * @Desc: 
 		 成员变量:
 *              位置:类中方法外
 *              初始值:有默认值
 *              生命周期:随着对象的创建而存在,随着对象的消失而消失
 *              内存位置:堆内存中
 *        局部变量:
 *              位置:在方法内或者方法声明上
 *              初始值:没有默认值,在使用前一定初始化
 *              生命周期:随着方法的调用而存在,随着方法调用完毕而消失
 *              内存位置:栈内存中
 *        注意事项:
 *        		成员变量和局部变量名相同,在方法中使用,就近原则
 *        		成员变量作用范围全局(当前类中)
 *        		局部变量作用范围局部(当前方法)
 */
public class Varialbe {
    //成员变量
    int num;

    //成员方法
    public void show(){        
        //局部变量
        int num2 = 10;
        System.out.println(num2);//10

        System.out.println(num);//找的是成员变量,有默认值

        //成员变量和局部变量名相同,在方法中使用,就近原则
        // int num = 100;
        //System.out.println(num);
    }

    //成员方法   main是被jvm所调用(目前来说main一执行的方法)
    public static void main(String[] args) {
        System.out.println("1111111111111");
    }
}

测试:

public class VarialbeDemo {

    public static void main(String[] args) {
        //创建对象
        Varialbe v = new Varialbe();

        //对象名.成员变量
        System.out.println( v.num);//0

        //对象名.成员方法
        v.show();
    }
}
  • 成员变量和局部变量的区别
  • 在类中的位置不同

  • 成员变量:类中,方法外

  • 局部变量:方法中或者方法声明上(形式参数)

  • 作用范围不一样

  • 成员变量:类中

  • 局部变量:方法中

  • 初始化值的不同

  • 成员变量:有默认值

  • 局部变量:没有默认值。必须先定义,在使用前定要初始化

  • 在内存中的位置不同

  • 成员变量:堆内存

  • 局部变量:栈内存

  • 生命周期不同

  • 成员变量:随着对象的创建而存在,随着对象的消失而消失

  • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失


遇见光,接近光,成为光~  成为更好的自己~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【毕业论文】| 基于Unity3D引擎的冒险游戏的设计与实现

📢博客主页:肩匣与橘 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由肩匣与橘编写,首发于CSDN🙉 📢生活依旧是美好而又温柔的,你也…

字符串(KMP)

P3375 【模板】KMP - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; #define ll long long const int N1e6100; int n0,m; char s1[N]; char s2[N];…

【MATLAB源码-第22期】基于matlab的手动实现的(未调用内置函数)CRC循环码编码译码仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 循环码是线性分组码的一种&#xff0c;所以它具有线性分组码的一般特性&#xff0c;此外还具有循环性。循环码的编码和解码设备都不太复杂&#xff0c;且检(纠)错能力强。它不但可以检测随机的错误&#xff0c;还可以检错突发…

2024年大广赛联通沃派命题解析:赛题内容一览

2024大广赛又又又又又出新命题了&#xff0c;它就是助力青少年积极向上&#xff0c;乐观自信&#xff0c;探享多彩人生的5G时代潮牌——联通沃派&#xff0c;让我们来看看命题详情吧&#xff01; 联联通沃派是中国联通面向青少年群体推出的客户品牌&#xff0c;契合目标群体特…

数据结构 - 图

参考链接&#xff1a;数据结构&#xff1a;图(Graph)【详解】_图数据结构-CSDN博客 图的定义 图(Graph)是由顶点的有穷非空集合 V ( G ) 和顶点之间边的集合 E ( G ) 组成&#xff0c;通常表示为: G ( V , E ) &#xff0c;其中&#xff0c; G 表示个图&#xff0c; V 是图 G…

某东推荐的十大3C热榜第一名!2024随身wifi靠谱品牌推荐!2024随身wifi怎么选?

一、鼠标金榜&#xff1a;戴尔 商务办公有线鼠标 售价:19.9&#xffe5; 50万人好评 二、平板电脑金榜&#xff1a;Apple iPod 10.2英寸 售价:2939&#xffe5; 200万人好评 三、随身WiFi金榜&#xff1a;格行随身WiFi 售价:69&#xffe5; 15万人好评 四、游戏本金榜&#xff…

Codeforces Round 934 (Div. 2) D. Non-Palindromic Substring

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

第一次给开源项目做贡献,我给 Hutool 改了行注释

大家好&#xff0c;我是松柏。 前两天在修 bug 的时候&#xff0c;写了个indexOf的方法。 这个方法是用来获取一段文本中某个字符串第 n 次出现的索引&#xff0c; 由于第一次写这个方法的时候少考虑了一种边界条件&#xff0c;导致最后查出的数据有时候会不符合预期。 我处…

【论文精读】CAM:基于上下文增强和特征细化网络的微小目标检测

文章目录 &#x1f680;&#x1f680;&#x1f680;摘要一、1️⃣ Introduction---介绍二、2️⃣Related Work---相关工作2.1 &#x1f393; 基于深度学习的对象检测器2.2 ✨多尺度特征融合2.3 ⭐️数据增强 三、3️⃣提议的方法3.1 &#x1f393; 具有上下文增强和特征细化的特…

代码随想录——删除有序数组中的重复项(Leetcode26)

题目链接 双指针思想&#xff0c;和上一篇Leetcode27类似 class Solution {public int removeDuplicates(int[] nums) {int slow 0;for(int fast 1; fast < nums.length; fast){if(nums[fast] ! nums[slow]){nums[slow] nums[fast];}}return slow 1;} }

【文末 附 gpt4.0升级秘笈】超越Sora极限,120秒超长AI视频模型诞生

120秒超长AI视频模型发布&#xff1a;开启视频生成新纪元 随着人工智能技术的迅猛发展&#xff0c;AI视频生成领域也取得了令人瞩目的突破。近日&#xff0c;一项名为“StreamingT2V”的120秒超长AI视频模型正式发布&#xff0c;标志着文生视频技术正式进入长视频时代。这一技…

python实现目录打印及辅助定位特定目录中满足条件的文件

python实现目录文件打印 用tuple进行当前目录下子目录及文件名的获取&#xff0c;代码如下&#xff1a; # 导入模块 import os# 生成一个元组 ret_tuple ()ret_tuple os.walk(.\\, topdownTrue) print(ret_tuple)执行上面代码&#xff0c;我们发现print(ret_tuple)的打印结…

江苏开放大学2024年春《液压与气压传动060246》第2形考作业占形考成绩的25%参考答案

​答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题&…

如何计算KST指标,昂首资本一个公式计算

在上一篇文章中&#xff0c;Anzo Capital昂首资本和各位投资者一起了解了KST指标&#xff0c;今天我们继续分享如何计算KST指标。 首先投资者可以在时间范围9、12、18和24分析变化率值。 前三个值(时间帧9、12、18)用EMA 26平滑&#xff0c;最后一个值用EMA 39平滑。 然后&…

实习管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 1. 前台功能…

Python之Opencv教程(1):读取图片、图片灰度处理

1、Opencv简介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个用于计算机视觉和图像处理的开源库&#xff0c;提供了丰富的图像处理、计算机视觉和机器学习功能。它支持多种编程语言&#xff0c;包括C、Python、Java等&#xff0c;广泛应用于图像处…

《VMamba》论文笔记

原文链接&#xff1a; [2401.10166] VMamba: Visual State Space Model (arxiv.org) 原文笔记&#xff1a; What&#xff1a; VMamba: Visual State Space Model Why&#xff1a; 多年以来CNN和VIT作为视觉特征提取的主流框架 CNN具有模型简单&#xff0c;共享权重&…

Java基础之运算符(整合)

文章目录 一.运算符算数运算符练习: 二.算术运算符的高级用法""操作的三种情况数字相加字符串相加字符相加 三.自增自减运算符基本用法 四.赋值运算符&关系运算符赋值运算符关系运算符逻辑运算符 五.短路逻辑运算符六.三元运算符 一.运算符 运算符: 对字面量或…

36.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

36.HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码&#xff1a; import FaultLogger from ohos.fau…

kaggle竞赛宝典 | 最新时间序列统一大模型,秒杀各类时序任务!

本文来源公众号“kaggle竞赛宝典”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;最新时间序列统一大模型&#xff0c;秒杀各类时序任务 作者&#xff1a;Fareise 最新时间序列统一大模型UniTS&#xff0c;秒杀各类时序任务&…