JAVA- 面向对象编程(上)

🌈个人主页: Aileen_0v0
🔥系列专栏:PYTHON学习系列专栏
💫个人格言:"没有罗马,那就自己创造罗马~"


目录

面向对象的特征及理解 

new 

Static

Summary:


面向对象的特征及理解 

面试题:oop的三大特征是什么?  ---> 封装,继承,多态

类,对象是什么?

类是自定义类型, 对象是实体

通俗的讲类相当于建房子的图纸,对象相当于通过图纸建出来的所有房子 

通过一个类,可以产生多个对象

面向对象: 找对象 创对象  使用对象 

面向对象:注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将功能实现连接起来
面向过程: 1.把冰箱打开 2.把大象放入 3冰箱关起来

面向对象:打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中

package Test;/*** 访问修饰限定符:* public: + 公有的* private: - 私有的* protected: 受保护的* 什么都不写 : 默认权限 -> 包访问权限*/class Person{//字段 -> 成员变量  : 定义在方法外边 类 的 里面//实例成员变量: 在对象Person里面//实例化没有初始化 默认值为对应的0值.-> (1.引用类型默认为null 2.简单类型默认为0)//我们也可以对实例成员变量进行赋值//char -> "\u0000"(空类型)  boolean -> falsepublic String name = "lin";public int age = 18;//	public char ch;
//	public boolean flg;//静态成员变量 不属于对象 属于类  ---有static 修饰public static int size = 100;//方法 -> 行为  eat 和 sleep  --- 实例成员方法public void eat() {int a = 10 ; //局部变量 --- 使用前需要初始化System.out.println("eat()!" );}public void sleep() {System.out.println("sleep()");}//静态成员方法public static void func1() {System.out.println("static::func1()");}}
public class TestDemo{public static void main(String[] args) {//如何访问静态成员方法 ,跟静态成员变量类似通过类名访问 Person.func1();}public static void main4(String[] args) {//如何访问实例成员方法?//跟成员变量类似,也需要创建一个对象进行访问Person per = new Person();per.eat();per.sleep();}public static void main3(String[] args) {//如何访问静态的数据成员?//不需要new一个对象,直接通过类名就可以访问了//  类名.静态成员变量System.out.println(Person.size);}public static void main2(String[] args) {Person per = new Person();//如何访问对象当中的实例成员变量?//操作符: 点号  对象的引用 . 成员变量System.out.println(per.name); System.out.println(per.age);//		System.out.println(per.ch); 
//		System.out.println(per.flg); }public static void main1(String[] args) {//实例化一个对象 通过关键字 newPerson person1 = new Person();Person person2 = new Person();Person person3 = new Person();Person person4 = new Person();}
}

new 

注意:

new关键字用于创建一个对象的实例

使用 . 来访问对象中的属性和方法

同一个类可以创建多个实例

字段/属性/成员变量
在类中,但是方法外部定义的变量.这样的变量我们称为“字段”或“属性”或“成员变量"三种称呼都可以一般不会严格区分).
用于描述一个类中包含哪些数据

使用 . 访问对象的字段.
“访问”既包含读,也包含写
对于一个对象的字段如果没有显式设置初始值,那么会被设置一个默认的初值

默认值规则:
。对于各种数字类型,默认值为 0.
。对于 boolean 类型,默认值为 false.
。对于用类型(String,Array, 以及自定制类), 默认值为 null 

认识 null
null 在Java 中为“空用",表示不引用任何对象,类似于C语言中的空指针如果对 null 进行,操作就会引发异常 

控制台运行结果:

初始化后:

 

利用对象.变量名进行变量数据的修改

 对于static来说,要访问静态成员方法可以利用:类名.方法名

 静态方法内部不能够访问非静态的数据成员

 

Static

如果在任何方法上应用static 关键字,此方法称为静态方法
1.静态方法属于类,而不属于类的对象
2.可以
直接调用静态方法,而无需创建类的实例
3.
静态方法可以访问静态数据成员,并可以更改静态数据成员的值

总结: 静态有限制,非静态没有限制

         静态方法不能直接使用非静态数据成员或调用非静态方法(非静态数据成员和方法                   是和实例相关的)

         曾经写的方法为了简单,都统一加上了 static.但实际上一个方法具体要不要带          static,都需要是情形而定
         main 方法为 static 方法 

package Test;class Student{public int age;//实例变量public String name;//实例变量public String sex; //实例变量public static int count;//类变量,也叫静态变量public final int size = 10;
//被final修饰局部变量的用途 保护局部变量的值 一旦将局部变量声明为final,它的值将被保护起来,不能被无意间或恶意地更改public static final int COUNT = 99;public class TestDemo1 {public static void main(String[] args) {Student stu = new Student();//person为对象的引用stu.age = 10;
//		stu.count = 100;System.out.println(stu.age);
//		System.out.println(stu.count);}}
}

 

Summary:

        这部分介绍了类和对象的概念,以及方法和属性 ,然后我们可以通过关键字new创建对象

        Java的变量包括(1.实例成员量,2.静态成员变量-有static修饰) ,

        方法包括(1.静态成员方法,2.实例成员方法),

        对于静态变量和方法可以通过类名去访问,而实例则需要创建对象,然后通过对象访问

 

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

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

相关文章

「Verilog学习笔记」异步复位的串联T触发器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 这道题目里我们有两个需要明确的点: 1. 什么是异步复位 2. 什么是串联的T触发器 关于第一个点,可以看我的这篇文章,已经整理好了&a…

【黑马程序员】SSM框架——SpringBoot

文章目录 前言一、SpringBoot 简介1. 入门案例1.1 入门程序① 创建新模块② 选择当前模块需要使用的技术集③ 开发控制类④ 运行自动生成的 Application 类 1.2 创建 SpringBoot 程序的两种方式1.2.1 最简 SpringBoot 程序所包含的基础文件1.2.2 基于 SpringBoot 官网创建项目 …

亚马逊 JDK下载地址

下载地址 https://docs.aws.amazon.com/corretto/选择版本 选择操作系统 比如 windows64 位 可以选择安装包或者解压版本 msi 的为安装版 zip 的为解压版

[动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值

[动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值 文章目录 [动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值题目解析解题思路状态表示状态转移方程初始化和填表顺序 返回值代码实现总结 LCR 166. 珠宝的最高价值 题目…

【入门Flink】- 06Flink作业提交流程【待完善】

Standalone 会话模式作业提交流程 代码生成任务的过程: 逻辑流图(StreamGraph)→ 作业图(JobGraph)→ 执行图(ExecutionGraph)→物理图(Physical Graph)。 作业图算子链…

GCN火车票识别项目 P1 火车票识别项目介绍 Pytorch LSTM/GCN

从本节开始,我将带大家完成一个深度学习项目:用图卷积神经网络(GCN),实现一个「火车票文字信息提取」的项目,由于火车票上每个节点文字不是等长的,所以还需要添加一个前置的 LSTM 来提取句子特征。 课前说明 1、这是…

invoke方法传参String数组问题——wrong number of arguments

invoke方法传参String数组问题——wrong number of arguments 问题描述一、案例准备二、错误反射调用实例三、正确反射调用实例 问题描述 今天笔者在使用invoke方法的时候,发现报了一个这样一个错:“wrong number of arguments”,在网上冲浪…

【LLM】大语言模型高效微调方案Lora||直击底层逻辑

大白话: DL的本质就是矩阵的乘法,就能实现LLM, 假设两个矩阵都很大,一个mxn,一个nxd的矩阵,m,n,d这几个数字可能几千甚至上万的场景,计算起来代价很大,如果我们可以small 这些数字,缩小到10甚至5这样的s…

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频) 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接(可点击): 🌟51单片…

基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop

前言 小程序商城系统是当前备受追捧的开发领域,它可以为用户提供一个更加便捷、流畅、直观的购物体验,无需下载和安装,随时随地轻松使用。今天给大家推荐一个基于.NET、Uni-App开发支持多平台的小程序商城系统(该商城系统完整开源…

【Web】TCP 和 UCP 的含义和区别

文章目录 一、两者含义二、两者区别 一、两者含义 TCP/IP 协议组为传输层指明了两个协议:TCP 和 UDP,他们都是作为应用程序和网络操作的中介物 TCP (传输控制协议):通过三次握手建立可靠的连接,发送端将数据…

yolov8+动物+姿态识别(训练教程+代码)

本文关键词: 关键点检测 关键点估计 姿态估计 YOLO 动物姿态估计是计算机视觉的一个研究领域,是人工智能的一个子领域,专注于自动检测和分析图像或视频片段中动物的姿势和位置。目标是确定一种或多种动物的身体部位(例如头部、四…

基于单片机的衣物消毒清洗机系统设计

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、系统总体设计2.2 功能分析2.3 系统框架设计 二、硬件电路设计3.1 电源模块的设计 三、 软件设计4.1 系统整体流程4.4 软件整体流程实物图 四、 结论五、 文章目录 概要 基于单片机的衣物消毒清洗机可以应用在…

PMIC、电源管理MAX77646ANP、MAX77647AANP、MAX77675AEWE、MAX77847AEWL DC-DC 开关稳压器

一、MAX77646ANP、MAX77647AANP 低IQ SIMO PMIC支持原电池应用的1.8V工作电压 MAX77646/MAX77647为尺寸和效率至关重要的低功耗应用提供电源解决方案。该IC集成单电感多输出(SIMO)降压/升压稳压器,可通过单个电感提供三个可独立编程的电源轨,尽可能地减…

Canvas 实现进度条展示统计数据示例

canvas可以画柱状图&#xff0c;如下就是一个例子&#xff0c;主要用到了lineWidth&#xff0c;beginPath&#xff0c;lineCap等知识点。 效果图 源代码 <!DOCTYPE Html> <html> <head><title>Line Chart Demo</title><meta http-equiv&quo…

前端框架Vue学习 ——(三)Vue生命周期

生命周期&#xff1a;指一个对象从创建到销毁的整个过程。 生命周期的八个阶段&#xff1a;每触发一个生命周期事件&#xff0c;会自动执行一个生命周期方法&#xff08;钩子&#xff09; mounted&#xff1a;挂载完成&#xff0c;Vue 初始化成功&#xff0c;HTML 页面渲染成功…

leetcode-887-鸡蛋掉落(包含最大值最小化,最小值最大化的二分优化+滚动数组的原理)

这里写目录标题 题意解题KNN复杂度DP解法思想&#xff08;超时&#xff09;上述方法的优化 &#xff08;最大值最小化二分优化&#xff09;完整代码 逆向思维的DP&#xff08;ksqrt(n)复杂度&#xff09;代码空间优化&#xff08;滚动数组&#xff09;代码 题意 链接&#xff…

qt6:无法使用setFontColor

问题描述 跟着C开发指南视频学习&#xff0c;但是发现无论是直接使用ui设计&#xff0c;还是纯代码都无法实现变更字体颜色的功能。图中显示&#xff0c;点击颜色控件后&#xff0c;文本框的文字加粗、下划线、斜体等才能设置&#xff0c;但是无法变更颜色。 此文提醒qt sty…

vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行 移到末尾,并且进入文本录入模式 GA (大写G大写A) 在一般模式(刚进入的模式,esc模式) GA 或 Shift ga 先 G 或 shiftg 到最后一行 然后 A 或 shifta 到本行末尾 并且进入文本录入模式 在最后一行下方新增一行 (光标换行,文字不…

蓝桥杯官网填空题(方格填数)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 在 2 行 5 列的格子中填入 1 到 10 的数字。 要求&#xff1a; 相邻的格子中的数&#xff0c;右边的大于左边的&#xff0c;下边的大于上边的。 如下图所示的 …