java基础---面向对象基础
成员变量与局部变量的区别:
定义的位置上区别:
1. 成员变量是定义在方法之外,类之内的。
2. 局部变量是定义在方法之内。
作用上的区别:
1. 成员变量的作用是用于描述一类事物的公共 属性的。
2. 局部变量的作用就是提供一个变量给方法内部使用而已。
生命周期区别:
1. 随着对象的创建而存在,随着对象的消失而消失。随对象保存在堆中。
2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域
那么马上从内存中消失。保存在栈中(随方法一起在堆栈块中)。
初始值的区别:
1. 成员变量是有默认的初始值。
数据类型 默认的初始值
int 0
float 0.0f
double 0.0
boolean false
char ' '
String(引用数据类型) null
2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。
匿名对象
匿名对象:没有引用类型变量指向的对象称作为匿名对象。(new Car())
匿名对象要注意的事项:
1. 我们一般不会给匿名对象赋予属性值,因为永远无法获取到。
2. 两个匿名对象永远都不可能是同一个对象。
匿名对象好处:
1.简化书写。
2.可以尽快的释放内存空间。
匿名对象的应用场景:
1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用
匿名对象。
2. 可以作为实参调用一个函数。
3.
System.out.println(new Student() == new Student()) ; // "==" 用于引用类型变量时,比较的是内存地址。判断两个 对象是否为同一个对象
封装
权限修饰符:权限修饰符就是控制变量可见范围的。
public : 公共的。 public修饰的成员变量或者方法任何人都可以直接访问。
private : 私有的, private修饰的成员变量或者方法只能在本类中进行直接访问。
封装的步骤:
1. 使用private修饰需要被封装的属性。
2. 提供一个公共的方法设置或者获取该私有的成员属性。
命名规范:
set属性名();
get属性名();
疑问: 封装一定要提供get或者set方法吗?
不一定, 根据需求而定的。
规范 : 在现实开发中一般实体类的所有成员属性(成员变量)都要封装起来。
实体类:实体类就是用于描述一类 事物的就称作为实体类。
工具类(Arrays数组的工具类):
封装的好处:
1. 提高数据的安全性。
2. 操作简单。
3. 隐藏了实现。
class Member{
public String name; //名字
private String sex; //性别
public int salary; //薪水
//定义一个公共的方法设置sex属性
public void setSex(String s){
if (s.equals("男")||s.equals("女")){ //注意: 如果比较两个字符串的内容是否一致,不要使用==比较, 使用equals方法。
sex = s;
}else{
//默认是男
sex = "男";
}
}
//定义一个公共的方法获取sex属性
public String getSex(){
return sex;
}
//聊天
public void talk(){
System.out.println(name+"聊得非常开心");
}
}
public static void main(String[] args)
{
Member m = new Member();
m.name="狗娃";
m.setSex("女");
m.salary = 800;
System.out.println("姓名:"+ m.name+" 性别:"+ m.getSex()+" 薪水:"+ m.salary);
}
java基础---面向对象基础的更多相关文章
- 第二十五节:Java语言基础-面向对象基础
面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...
- JAVA(一)JAVA基础/面向对象基础/高级面向对象
成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过c ...
- 到头来还是逃不开Java - Java13面向对象基础
面向对象基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来.所以 ...
- (Java)《head first java》值得Java或面向对象基础的新手看。
看完这本书后本人收获良多. 内容对Java以及面向对象的入门者非常友好. 抽象的内容惯用图解的方法来剖析,通俗易懂 之前看C#入门经典的面向对象时,依然浓浓的一头雾水. (1)很不解为何实例化要写成A ...
- python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)
python基础--面向对象 (1)面向过程VS面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. ...
- sql+PHP基础+面向对象基础简单总结
一.MYSQL 1.配置MySql 第一步安装服务器(apache). 第二部安装MySql界面程序 2 ...
- python语法基础-面向对象-基础-长期维护
############### 类的基本操作 ############## """ 类的基本认识: 1,类就是一个模子 2,dict,list都是类,具体的一 ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
随机推荐
- C#使用Blazor编译WebAssembly供前端调用(一),关于SkiaSharp相关问题
目前信创热潮开始掀起,而C#很多行业开发的都是桌面端,迁移到网页端常常会因为很多库不支持或者不友好导致项目一直卡着. 最近一直在网上找灵感,偶然发现Web Assembly,一开始我还没不知道这是什么 ...
- AI浏览器自动化实战
只需一句话,AI 即可自动操作浏览器: 搜索商品: 下单支付: 甚至还能进行深度研究(Deep Research),自动生成完整的攻略报告: Browser use 是一个开源项目,使 AI 大模型能 ...
- 解密prompt系列53. 再谈大模型Memory
上一章畅想里面我们重点提及了大模型的记忆模块,包括模型能否持续更新记忆模块,模型能否把持续对记忆模块进行压缩更新在有限的参数中存储更高密度的知识信息,从而解决有限context和无限知识之间的矛盾.这 ...
- 重载(Overloading)与重写(Override)的区别?
重载(Overloading)与重写(Override)的区别? No. 区别 重载 重写 1 英文单词 Overloading Override 2 发生范围 发生在一个类里面 发生在继承关系中 3 ...
- 【ROS】4.1 Turtlebot3仿真Waffle循线跟踪
原视频 本节内容较多,请根据左侧目录针对性阅读. 一.准备工作 这一章我们先用gazebo仿真做,不使用真小车,使用的是Waffle模型. 需要下载的库gazebo-ros.turtlebot3_si ...
- K8s Service 示例详解
Kubernetes 官方文档:Services-Networking Service介绍 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地 ...
- 全国海域潮汐表查询微信小程序详情教程及代码
最近在做一个全国海域潮汐表查询,可以为赶海钓鱼爱好者提供涨潮退潮时间表及潮高信息.下面教大家怎么做一个这样的小程序.主要功能,根据IP定位地理位置,自动查询出省份或城市的港口,进入后预测7天内港口潮汐 ...
- 算法:请找出数组a所有重复元素和比较数组a和数组b得到不重复的新数组和比较数组a和数组b请找出所有重复元素
/** * 1.给定数组int[] a,int[] b * (1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3, ...
- html_py
Sock.py import socket def handle_request(client): buf=client.recv(1024) client.send(bytes(&q ...
- HMM (隐马尔可夫) 推导 (下) - 参数估计 (EM)
HMM (隐马尔可夫) 推导 (下) - 参数估计 (EM) 回顾 HMM 上篇介绍了HMM这样的一种时序类模型, 即描述了一些观测现象的产生, 是由我们很难观测到的 "隐变量因子" ...