java对象中的属性,方法
1、什么是属性?有几类属性?
属性是用于修饰或者对对象拥有的某一个基础名词,如颜色,年龄。
目前java有的是
静态属性
跟着类初始化,在所有的类的实例化对象内都可以取到,存放在方法区内。和应用程序的生命周期相同。
对象属性
跟着对象初始化,在创建的对象内才可以取到,存放在内存的堆中。随着GC的回收而销毁。
局部变量
跟着方法初始化,在方法内部才可以取到,存放在内存的栈中。当方法运行完后就会被销毁。
2、属性的修饰词
private 修饰后为私有属性,仅当前类可以使用,子类不可使用不可继承
缺省修饰 仅本类和同包下可以调用
protected 子类可以使用,同包可以使用,本类可以使用
public 所有类可以使用
3、为什么需要不同的修饰词
private 私有属性,意味着其他类不能随意的修改,要修改只能通过其他方式,如提供方法进行获取,如果说这个属性是不变的属性,而其他类有权限对其修改的话,那么意味着这个属性就会变化,如果我们只提供一个获取值的方法,那么这个就能保护好了
对于 余下的修饰符来说,也就是权限不一样,主要还是根据继承以及封装特性来进行权限的分级。
4、final 修饰的属性
final修饰的属性是不可变的属性
5、什么是方法?有几类方法?
方法就是解决问题的一种方式。传入参数,对参数处理后得到一个最终的结果,或者没有结果产生,中途对某些东西进行了修改。
目前java有的方法:
静态方法:
跟着类一起初始化,可以使用class对象来调用。
抽象方法
没有具体实现的方法,更多的是一种规范。
普通方法
普通的实现方法,处理一段逻辑。
构造方法
初始化某一类数据的方法,如类的构造方法,以及属性的构造方法
6、方法的入参
方法的入参是处理一段逻辑所需要的一系列所需。
推荐方法最多传4个入参,如果入参太多可能意味着你方法的颗粒度还太大,可能不太符合单一职责原则,对于后续维护不太友好。
方法的传参问题?都是值传递。
方法传参,参数可以是对象,那么就有一个问题,对象是有值和指针的,那么传入的参数进行了修改后,到底改的是入参的指针还是值呢?
可以分为三类:
入参为普通的数据类型,会将原有的数据复制一份传到方法内,方法修改不会造成原有数据的改变。
入参为String以及包装类,也会新建一个新的对象,因此方法修改不会造成原有数据的改变。
入参为引用类型,会复制一个新的地址传给方法,当给地址对应的对象进行修改,那么对象的值会被修改,但是如果此时如果新建一个新的对象,将新的对象赋值给入参,由于入参是复制的地址,当方法运行结束这个复制的地址引用会被删除,这样原本的对象的地址是没有变的,因此也不会指向方法内新建的对象的。所以可以说这里也是值传递,传递的是地址的值,而不是地址的引用。
7、方法的返回
方法不一定非要有返回值
如果有返回值,那么方法必须返回一个值
java对象中的属性,方法相关推荐
- 判断一个java对象中的属性是否都未赋值_100道Java基础面试题(一)
100道Java基础面试题(一)未来大家将步入职场,面试的时候面试官还会问大家一些Java相关的问题.小编整理出100道非常实用的面试题目,可以帮助双体的小伙伴应对面试,我们一起来看看都有哪些吧! 1 ...
- 移除Java对象中的属性_移除/添加 JSON对象中的某个属性
因为JSON完全是动态的,所以给一个JSON对象添加一个属性是很简单的,如: var json = {}; json.username='xtayfjpk'; 这样就为json对象添加了一个名为use ...
- 移除Java对象中的属性_在java对象中添加和删除属性
我怎样才能在 java中实现这一点.我有一个具有属性的对象. public class Object { private final Credentials Credentials; private ...
- python五十七:str与repr,类似于 java对象中的tostring()方法
class Foo:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):return (&quo ...
- 遍历java对象中的属性
public static void Reflect(Object obj) throws NoSuchMethodException, IllegalAccessException, Illegal ...
- Java:比较两个对象中全部属性值是否相等
点击关注公众号,实用技术文章及时了解 来源:xiaoer.blog.csdn.net/article/details/85005295 例如下述Java类: import java.io.Serial ...
- 自己实现java I/O中的BufferedReader对象中的raedLine方法
import java.io.*; /* readLine方法的原理是将除回车符以外的字符全部存储到一个字符数组中(本例中用StringBuilder代替),等到读完一行后将其返回 自己编写一个Buf ...
- python封装:隐藏对象中的属性或方法(三分钟读懂)
封装:隐藏对象中的属性或方法 隐藏对象中的属性 隐藏:- 将对象的属性名,修改为一个外部不知道的名字 我们使用时,有特殊方法来处理获取(修改)对象中的属性 获取(修改)对象中的属性 需要提供一个get ...
- 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具
查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...
最新文章
- 拨出网线后,网卡IP丢失
- 删库造成损失 0.87 亿,微盟程序员被判6年!
- 使用CSVDE批量导入命令/出口AD用户
- click() bind() live() delegate()区别
- python、java大作战,python测试dubbo接口
- Pv6报头结构以及与IPv4的比较
- c语言代码中调用系统命令行.sh shell脚本,linux shell system传参
- 小工具—系统API应用
- 科大讯飞:5年内 科技会场没机器人端茶倒水就太low了
- android mds文件,安卓手机如何打开.mdf文件
- Adobe FLASH CS6 安装错误解决方法
- Freemarker数字格式化总结
- 我的世界服务器物品怎么上锁,我的世界怎么给箱子上锁_我的世界箱子上锁指令用法及解锁方法_玩游戏网...
- 进制转换--(2-8)为什么2的3次方=8,所以三位变一位
- java中怎么调用对数函数_Java对数函数及其运算方法
- python电话号码对应的字符组合_Python3 两种方式查找字符串里的电话号码
- 单片机c语言报错_asm啥意思,SPMC75系列单片机地C和ASM( - 控制/MCU - 电子发烧友网...
- 关于SQL的一点学习
- 如何使用微信开发者工具调试前后端接口
- 高等数学中必须掌握的基础知识(一)