【JavaSE】类和对象详解(下)

前言

面向对象程序的三大特性:封装、继承、多态~

书接上回 类和对象(上)~

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~



目录

前言

封装

private

public

快速生成可访问封装的方法

导包

通过import导包

模糊导入*

特殊举例

建包

static

静态成员变量

​编辑

静态成员变量的访问

静态方法

静态与非静态方法的相互调用

代码块

普通代码块

实例代码块

静态代码块

执行顺序


封装

private

代码层面封装:用private修饰成员变量,使得该成员变量只能在该类下使用

优点:提高了数据的安全性

    private String name;

例如以下代码,在Person类用private修饰name(封装了),在Test这个类中就不能使用了

这里的name报错

那应该如何访问被封装的成员变量呢?

public

我们在Person类下面写两个方法,用public 修饰,使得其他类也可以访问这些方法

    
     public void eat(){
        System.out.println(this.name+"在干饭!");
    }
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return this.name;
    }

快速生成可访问封装的方法

结果截图

所以,一般情况下(有的时候还是要根据实际情况来):

  • 成员变量定义为private
  • 成员方法定义为public

简单来说就是一个文件夹

用于分类多个Java文件

导包

通过import导包

以Arrays举例

会在第一行自动导入Arrays包

模糊导入*

特殊举例

这样写更方便了,但不建议,因为代码的可读性下降了。

建包

包名:全是小写,域名的逆置写法

比如一个域名是www.baidu.com,在设置包名时是写com.baidu.www

static

静态成员变量

被static修饰的成员变量叫做 静态成员变量(类变量),不存在对象中,存在方法区里,静态成员变量不依赖于对象(不属于某个对象,是所有对象共享的)

    public static String country="中国";//用static修饰成员变量,让它存储在方法区里

静态成员变量的访问

        System.out.println(person1.country);//利用 对象. 的方式访问静态变量country
        System.out.println(Person.country);//利用 类名. 访问静态变量country

两种方法都合法,但是第一种方法不合理!建议使用第二种方法

静态方法

    public static String getCountry() {
        return country;
    }

静态与非静态方法的相互调用

静态方法是不需要对象的,在静态方法中调用需要对象的方法是不行的

那该怎么解决这个问题呢?

我们可以在静态方法里面创建一个对象,用于非静态方法调用,这样就不会报错了

相反,在本身就需要对象的方法中调用静态方法是可以的

代码块

使用 {} 定义的一段代码称为代码块。

普通代码块

定义在方法里面的代码块

实例代码块

定义在类里面,方法外面的代码块,也叫 构造块 或者 非静态代码块

静态代码块

定义在类里面,方法外面,并且用static修饰过的代码块

执行顺序

先静态代码块,再实例代码块,最后是构造方法。

静态代码块不管有多个对象,只执行一次(因为类只会加载一次)

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

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

相关文章

ubuntu16.04 不支持 gcc-11,g++11

总结 ubuntu16.04 不支持 gcc-11,需要升级 18.04 或更高的版本。 背景 最近需要在我的 ubuntu16.04 电脑上安装 gcc-11,g-11,使用更高的版本来编译代码。根据网上查到的方式是添加以下的源并进行安装 sudo add-apt-repository ppa:ubuntu…

数据库之MyBatisPlus详解

MyBatisPlus MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官网地址:https://baomidou.com/ 一、入门案…

微信公众号迁移公证书在哪?

公众号迁移有什么作用?只能变更主体吗?很多小伙伴想做公众号迁移,但是不知道公众号迁移有什么作用,今天跟大家具体讲解一下。首先公众号迁移最主要的就是修改公众号的主体了,比如我们公众号原来是A公司的,现…

Ruoyi-Cloud-Plus_使用Docker部署分布式微服务系统_环境准备_001---SpringCloud工作笔记200

1.首先安装docker: 如果以前安装过首先执行: yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 去卸载docker 2.安装dokcer需要的工具包…

linux下minio部署和nginx配置

1 下载minio wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio #启动minio,文件数据存放在/data目录 ./minio server /data2 部署minio 下载minio后赋予可执行权限就可以运行了,这里我整理了遇到的坑和解决问题的最终配置…

大模型面试准备(九):简单透彻理解MoE

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。 合集在这…

【洛谷】P9241 [蓝桥杯 2023 省 B] 飞机降落

挺有意思的一道题,分享给大家 题目链接 P9241 [蓝桥杯 2023 省 B] 飞机降落 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 输入格式 输出格式 输入输出样例 说明/提示 思路 一开始尝试贪心能不能做,但是不好确定飞机的顺序 因为这题的数…

第5篇:挖矿病毒(一)

0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一。病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升高,风扇噪声增大…

金融衍生品市场

金融衍生品市场 衍生金融品的作用衍生金融工具远期合约期货合约期权 衍生金融品的作用 套期保值(Hedging) 组合多头头寸(long position)与空头头寸(short position)例:股票与股指期货 投机 衍生金融工具 远期合约 定义:在将来…

C语言数组详解

一维数组 创建和初始化 数组就是一组相同元素的集合。 他的创建: char arr[10]; int arr1[5]; 数组创建中 [] 里不能是变量,但是在c99标准之后就可以了被称为变长数组,但是不常用,而且变长数组不能初始化。 初始化&#xff…

这两个比较经典的LVS问题怎么解?

今日景芯SoC VIP学员遇到的LVS问题,比较经典,大家先思考下。然后本文末尾分享下2.5GHz A72训练营的LVS解法: 问题1: 问题2: 修改后: 具体修改方案参见知识星球,接下来分享下2.5GHz A72项目的LV…

如何使用固定公网地址远程访问内网Axure RP生成的网站原型web页面

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

StructStreaming Batch mode和Continuous mode

StructStreaming Batch mode和Continuous mode 让我们把目光集中到 Structured Streaming,也就是流处理引擎本身。Structured Streaming 与 Spark MLlib 并列,是 Spark 重要的子框架之一。值得一提的是,Structured Streaming 天然能够享受 S…

C语言刷题总结

1.网购问题 (1)这道题目需要分多种情况进行考虑:双11还是双12,有无优惠券,是否会出现优惠券的面值大于购买商品的单价(这个时候直接按0元进行处理); (2)在对于优惠券的分…

Ansible-3

block任务块:可以通过block关键字,将多个任务组合到一起;将整个block任务组一起控制是否要执行。 如果test组中的主机系统发行版是Redhat则安装并启动httpd。原本这是需要两个任务安装和执行,通过block整合为一个任务执行。 rescu…

PyLMKit(9):ChatTable与你的表格聊天,表格问答

功能介绍 与你的结构化数据聊天:支持主流数据库、表格型excel等数据! ChatDB:支持数据库问答ChatTable:支持txt,excel,csv等pandas dataframe表格的问答 1.下载安装 pip install pylmkit -U pip install pandasql2.ChatTable实…

阿里云ECS服务器经济型e实例详解,CPU性能测评

阿里云服务器ECS经济型e系列是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU处理器采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理器内存配比&#xff0c…

STM32——超声测距HC_SR04记录

一、HC_SR04简述 HC-SR04超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。 基本工作原理: (1)采用IO 口TRIG 触发测距,给最少10us 的高电平信呈。 (2)模块…

C/C++函数字符串和数字的互相转化(比赛超实用)

字符串和数字相互转化: 1 数字转字符串: 实现方法:to_string函数 存在头文件: string 实现代码: #include<iostream> #include<string> using namespace std; int main() {int a 114514;string s to_string(a);cout << s[0] << endl;cout <<…

Spring Web MVC的入门学习(一)

目录 一、什么是 Spring Web MVC 1、MVC 定义 二、学习Spring MVC 1、项目准备 2、建立连接 2.1 RequestMapping 注解的学习 2.2 RequestMapping 使用 3、请求 3.1 传递单个参数 3.2 传递多个参数 3.3 传递对象 3.4 后端参数重命名&#xff08;后端参数映射&#xf…