面向对象2
发布日期:2021-06-27 12:55:45
浏览次数:40
分类:技术文章
本文共 1446 字,大约阅读时间需要 4 分钟。
文章目录
面向对象2
封装
封装的意义在于保护或者防止代码(数据)被无意破坏。保护成员属性,不让类意外的程序直接访问和修改。
封装的原则: 隐藏对象的属性和实现细节,仅对外公开访问方法,并且控制访问界别。
1、this关键字的使用
使用this关键字可以完成以下操作:
- 调用类中的属性;
- 调用类中的方法或构造方法; 在一个构造方法中调用另一个构造方法时,调用的代码必须编写在构造方法的第一行。
class Person{ private String name; private int age; Person(){ this("默认姓名",1); } Person(String name,int age){ this.name = name; this.age = age; } void say(){ System.out.println("姓名"+this.name+",年龄为"+this.age); } }
- 表示当前对象
2、static
static表示“静态”的意思,可以用来修饰成员变量和成员方法
即,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
并且不会因为对象的多次创建 而在内存中建立多份数据
关于类的特性
- 静态成员 在类加载时加载并初始化。
- 无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所有对象公用 )
- 在访问时: 静态不能访问非静态 , 非静态可以访问静态 因为静态修饰的方法,在被调用时,有可能对象还未创建
例如:
//在类加载时,静态方法已经加载并初始化,而此时对象还没有创建//因此可以在say2()方法中调用say(),而不能在say()中调用say2()class eg1{ static void say(){ System.out.println("锄禾日当午"); } void say2(){ System.out.println("汗滴禾下土"); say(); }
3、关于代码块
普通代码块 在执行的流程中出现的代码块, 我们称其为普通代码块。 构造代码块 在类中的成员代码块, 我们称其为构造代码块, 在每次对象创建时执行, 执行在构造方法之前。静态代码块 在类中使用static修饰的成员代码块, 我们称其为静态代码块, 在类加载时执行。 每次程序启动到关闭 ,只会执行一次的代码块。 同步代码块构造方法 与 构造代码块 以及 静态代码块的执行顺序: 静态代码块 --> 构造代码块 --> 构造方法
5、权限修饰符
修饰符 | 类 | 包 | 子类 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
6、main方法详解
public static void main(String args[]) 各个参数的含义如下: · public:表示公共的内容,可以被所有操作所调用 · static:表示方法是静态的,可以由类名称直接调用。java StaticDemo09 · void:表示没有任何的返回值操作 · main:系统规定好的方法名称。如果main写错了或没有,会报错:NoSuchMethodError: main · String[] args:字符串数组,接收参数的
转载地址:https://blog.csdn.net/weixin_43454088/article/details/115723657 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年02月28日 11时52分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java当前路径_java获取当前路径的几种方法
2019-04-21
java web传递参数_Javaweb的八种传值方式
2019-04-21
java gui支持的包有哪两个_Java GUI
2019-04-21
java list详解_java集合List解析
2019-04-21
java坐标代码_java实现计算地理坐标之间的距离
2019-04-21
mysql 取两个时间差 php_在php和MySql中计算时间差的方法详解
2019-04-21
mysql 重启数据库实例_mysql 单机多实例重启数据库服务
2019-04-21
dtc mysql_DTCC归来-高可用可扩展数据库架构探讨
2019-04-21
java怎样将日期本土化_Java中的日期操作
2019-04-21
java生产者消费者模型到精通_java生产者消费者模型
2019-04-21
java二叉树求权值_百度笔试题目:二叉树路径权值和【转】
2019-04-21
欧亚马 java折叠车_如何选择欧亚马折叠车?
2019-04-21
python函数代码块以什么开头_Python初体验-开篇 代码全析
2019-04-21
java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc
2019-04-21
php读取大文件某行内容,PHP读取和修改大文件的某行内容_PHP教程
2019-04-21