Java入门篇 之 补 类与对象

本篇碎碎念:每个人的想法都不一样,不要强求,顺其自然,要相信,一切都在向好的方面前进!!!!

今日份励志文案:山海的浩瀚,宇宙的浪漫,都在我内心翻腾,在推着我前进

冲冲冲!!!!

目录

前言:类与对象的的定义与使用

1.创建类

 2.创建具体的对象

一.封装 

二.访问限定符

 三.包

四.static成员

五.代码块

六.Math类(拓展):


前言:类与对象的的定义与使用

1.创建类

class 类名{成员变量/实例对象;成员方法;}

 2.创建具体的对象

类名称 引用名称=new 类名称();

例如:

class Student {public String name ;public int age;public String sex;
}
public class happy {public static void main(String[] args){Student people=new Student();people.age=20;people.name="ly";people.sex="女";System.out.println("年龄:"+people.age);System.out.println("姓名:"+people.name);System.out.println("性别:"+people.sex);}
}

一.封装 

面向对象的几个重要的特征:封装,继承,多态

封装:将类的实际细节进行了隐藏,对外只提供一些开放的接口

封装只不过是在类外看不见这个字段

给public变成private

public:是一个访问修饰限定符,可以修饰类名,接口,方法,成员变量

private:方法或成员属性被private修饰后,当前方法或成员变量只能在当前类中使用

直接拿不到的话,可以间接拿到,利用函数的方法去调用

class Student {private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
public static void main(String[] args) {Student student = new Student("张三",10);student.setName("小王");System.out.println(student.getName());System.out.println(student.getAge());}

get方法开头,后面跟着的属性名首字母大写的形式(上述代码中也有体现)

由于该属性是私有的,因此在类的外部无法直接访问该属性,必须通过get方法来获取属性的值

set方法,用于设置对象的私有属性值,跟get方法一样,后面跟着的属性名首字母大写的形式

并接受一个参数,即要设定的属性值

二.访问限定符

public:可以理解为一个人的外貌特征,谁都可以看到

default:对于自己家族中(同一个包)不是什么秘密,对于其他人就是隐私(default默认的,什么都不写的情况时的默认权限)

private:只有自己知道,其他人都不知道

 三.包

为了更好的管理类,把多个类收集在一起成为一组,成为软件包

如何在idea情况下建包:右键src,new,选择package,输入包名

用import导包

*表示通配,要哪一个就能匹配到哪一个

(更建议显示指定要导入的类名,否则容易出现冲突的情况)

四.static成员

被static修饰的成员变量不属于对象;也不依赖于对象;

就不能通过对象的引用来访问,不是报错是警告;可以这样做但是不合理

合理的方式是:通过类名访问,不属于对象,属于类

类的成员变量 其实有两种

(1) 静态成员变量

1静态成员变量类的,不属于对象的

2 类名+点号来访问静态成员变量

(2) 非静态成员变量/普通成员变量

1 属于对象的,每实例化一个对象,都会有一个对应的非静态成员变量;

2 每个对象都有,对应的引用+点号来访问

static修饰的成员变量,成为静态成员变量

静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享的

静态成员变量特性:

1不属于某个具体的对象,是类的属性,是所有对象所共享的,不存储在某个对象的空间

2.既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问

3.类变量存储在方法区中

4.生命周期伴随类的一生(随类的加载而创建,随类的卸载而销毁)

Java没有全局变量的概念,静态的只能是成员变量,不能是局部变量

Static修饰成员方法:

成员变量是里面的内容({   }里面的内容)

成员方法:

修饰符 返回类型 方法名 (参数列表){方法体}

例如 public String student(String name){ ... }

静态方法特性:

1.不属于某个具体的对象,是类方法

2.可以通过对象调用,也可以通过类名.静态方法名(...)方式调用,更推荐后者

3.在静态方法内部不能使用非静态的数据成员

4.静态方法中不能调用任何非静态方法,因为非静态方法有this参数,在静态方法中调用时候无法传递this引用

五.代码块

普通代码块,定义在方法当中的代代码块

被static修饰的代码块是静态代码块

先执行静态代码块,在执行实例代码块,最后是执行构造方法

同为静态代码块,看定义的顺序进行运行

怎么定义就怎么按照顺序运行

注意:静态代码块不管生成多少个对象,只会执行一次

class TestStatic {public static int staticNum = 100;public int data1 = 10;{//构造代码块 || 实例代码块System.out.println("实例代码块被执行了....");data1 = 1000;//一般情况下  用来初始化 非静态的数据成员//staticNum = 1000000;}static {System.out.println("静态代码块被执行了....");staticNum = 9999;}static {staticNum = 91999;}public TestStatic() {System.out.println("执行构造方法.....");}
}public class exam {public static void main(String[] args){TestStatic testStatic = new TestStatic();}}

 

六.Math类(拓展):

有一些数学运算的表达式比较复杂,Java中的java.lang.Math类以静态方法的形式提供了很多常用的数学函数,比如:指数、对数、三角函数和平方根等等。这些常用的数学函数能够使我们快速的得到一些复杂的数学运算结果,而不需要我们自己编写这些复杂的运算。

Math提供的属性或方法:

1.Math.PI:代表圆周率

2.Math.max(a,b):比较数值a和b中哪一个大,返回大的那个数值.

3.Math.min(a,b):比较数值a和b中哪一个小,返回小的那个数值.

4.Math.pow(a,b):求a的b次幂

5.Math.sqrt(a);求a的平方根

6.Math.random();此方法会返回一个[0,1)之间的随机小数

 public static void main(String[] args){int a=10;int b=20;int c=Math.max(a,b);System.out.println(c);}

c的值为20,

使用前要导包

import static java.lang.Math.*;

如果有解释的不对或者不清晰,如果可以从评论区指出,我一定会加以修改,万分感谢

希望对你们有所帮助

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

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

相关文章

LeetCode200.岛屿数量

看完题目我还感觉这道题目有点难,没想到20分钟不到就完全靠自己给写出来了。我就是按照自己的想法来,我用一个等大的visit数组来表示grid数组中的这个元素是否被访问过(是否已经被判断了是不是岛屿)。 先用一个大的循环对grid数组…

贝锐蒲公英X1解决远程访问NAS难题

由于经常在外出差和旅游,需要实现即使在外地也能远程登录回去家里的NAS去处理事情或传输文件,因此解决方案之一是搭建一个安全简易的个人私有云。 实施难度 (1)家庭网络无公网IP,且公网IP价格昂贵(2&…

Django的ORM操作

文章目录 1.ORM操作1.1 表结构1.1.1 常见字段和参数1.1.2 表关系 2.ORM2.1 基本操作2.2 连接数据库2.3 基础增删改查2.3.1 增加2.3.2 查找2.3.4 删除2.3.4 修改 1.ORM操作 orm,关系对象映射,本质翻译的。 1.1 表结构 实现:创建表、修改表、…

Python用requests库采集充电桩LBS位置经纬度信息

这是一个使用Python的requests库来爬取网页内容的示例。首先,我们需要导入requests库。然后,我们需要定义一个函数来处理请求。在这个函数中,我们需要设置爬虫IP服务器的URL和端口号,然后使用requests.get来获取网页内容。最后&am…

GoF之代理模式

2023.11.12 代理模式是GoF23种设计模式之一,其作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以…

JavaScript理解表达式和语句的含义

JavaScript中的表达式和语句都是用于完成特定计算或操作的语言构件,但它们有着不同的含义和用途: 表达式(expression)是用来计算并返回一个值的代码片段,可以包含变量、数值、函数调用、运算符等。表达式的运算结果可以被赋值给变量、作为函数…

FlinK之检查点与保存点机制

检查点与保存点 检查点Checkpoint概述保存时机保存与恢复检查点算法 检查点配置启用检查点指定存储位置其它配置通用增量 保存点Savepoint概述使用保存点切换状态后端 SQL客户端中操作提交作业触发恢复 检查点Checkpoint 概述 在 Flink 中,检查点是用于实现状态一致…

状态图和活动图的含义及其区别

状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序 列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。 活动图可以用于描述系统的工作流程和并发行为。活动图其实可看作状态图的特殊形 式&am…

解决springboot接受buffer文件为null(从picgo上传buffer看springmvc处理过程)

1. 前言: picgo插件的简单开发 上篇文章我们简单写了picgo上传插件,但是当我们测试的时候,发现问题了,后端MultipartFile file接受到的文件为null。 2. 排查问题: 参考的文档 picgo api列表关于multipart form-data中…

redis 问题解决 2

1.4 数据存储 1、Redis 的数据过期策略是什么? Redis的数据过期策略包括两种机制:被动删除和主动删除。 被动删除: 当某个键被访问时,如果发现这个键已经过期,Redis会立即删除这个键。这意味着如果一个过期的键从未被访问,它就不会被自动删除。这是一种惰性删除策略。主…

链表OJ题【环形链表】(3)

目录 环形问题的思考 ❓Q1 ❓Q2 🙂Q2 ❓Q3 ❓Q4 8.环形链表 9.环形链表Ⅱ 今天接着链表的经典问题环形问题。大家一定要自己动手多写写。🙂 快慢指针(保持相对距离/保持相对速度)野指针考虑为NULL的情况带环链表&#x…

SpringBoot自动装配定义先后顺序失效原因极其解析

SpringBoot自动装配定义先后顺序失效原因极其解析 1、场景分析1.1、问题总结 2、使用AutoConfigureBefore、AutoConfigureAfter和AutoConfigureOrder注解指定加载顺序2.2、AutoConfigureXX注解失效原因总结 3、使用静态内部装配类提升加载顺序4、bean加载顺序规则 1、场景分析 …

矩阵起源加入 OpenCloudOS 操作系统开源社区,完成技术兼容互认证

近日,超融合异构云原生数据库 MatrixOne企业版软件 V1.0 完成了与 OpenCloudOS 的相互兼容认证,测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好。 一、产品简介 矩阵起源 MatrixOrigin 致力于建设开放的技术开源社区和…

Nginx缓存基础

1 nginx缓存的流程 客户端需要访问服务器的数据时,如果都直接向服务器发送请求,服务器接收过多的请求,压力会比较大,也比较耗时;而如果在nginx缓存一定的数据,使客户端向基于nginx的代理服务器发送请求&…

Spring面试题:(五)Spring注解开发@Component,@Autowired,@Bean,@Configuration

Bean基本注解 spring提供注解的版本 Component注解替代bean标签 bean其它属性的相关注解: scope 替代scopelazy 替代lazy-initPostConstruct 替代init-methodPreDestroy 替代destroy-method 使用Component注解的前提是开启注解扫描 衍生注解Repository,Servi…

jdk安装

.概览 1.jdk下载 JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 安装JDK后,会在电脑中同时安装:java的运行环境jre 和 开发环境jdk。 安装 JDK时,不建议安装太旧或太新的版本。目前的最新版本是jdk9。目前jdk8比较稳定&am…

【Lin通信】LinTrcv配置及代码分析

目录 前言 正文 1.LinTrcv模块配置 1.1LinTrcvGeneral 1.2 LinTrcvChannel 1.2.1 LinTrcvAccess 1.2.1.1 LinTrcvDioAccess

STM32 LED编程 GPIO的初始化(标准库)

实验的电路图介绍 实验的电路图类似于开漏接法 要初始化GPIOC接口 标准库的模板 GPIO的标准库编程接口 GPIO引脚的初始化 GPIO作为片上外设 每一个片上外设使用前一定要使能时钟 为什么要使能时钟?时钟是啥 时钟的使能 stm32的每一个片上外设都是时序电路 时序…

go单元格测试

编写单元测试(Unit Test)是一种测试方法,用于验证代码中的单个功能单元(通常是函数或方法)是否按照预期工作。以下是编写单元测试的一般步骤: 1. 创建测试文件:在项目的测试目录中创建一个新的…

人类为什么要发明微积分?用Python实现微积分

很久很久以前,在一个宁静的小村庄中,住着一位名叫牛顿的年轻学者。牛顿对于周围的一切都充满好奇心,他喜欢仰望星空、观察植物生长,并经常思考自然界中的各种奥秘。 有一天,当他坐在庄园的苹果树下阅读书籍时&#xf…