
面向对象2
发布日期:2021-06-27 12:55:45
浏览次数:22
分类:技术文章
本文共 1436 字,大约阅读时间需要 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2023年03月20日 12时44分59秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
最新文章
ASP调用存储过程,并获取异常信息
2019-11-29 14:27:51
LC.exe 已退出 错误解决方法
2019-11-29 14:27:51
ASP三层模式实践源码(未完待续)
2019-11-29 14:27:48
asp 应用ADODb.Command使用adLongVarChar参数类型保存Access备注字段
2019-11-29 14:27:49
ASP三层模式实践源码 V1.1已经更新
2019-11-29 14:27:49
怎样成为优秀的软件模型设计者
2019-11-29 14:27:49
用SQL语句获取MSSQL表关键字段的名称、数据类型和长度
2019-11-29 14:27:49
MS SQL用ROWCOUNT解决TOP子句不支持变量的问题
2019-11-29 14:27:49
JavaScript(一)
2019-11-29 14:27:47
HTML(一)
2019-11-29 14:27:47
JavaScript(二)
2019-11-29 14:27:48
JavaScript(三)
2019-11-29 14:27:48
JavaScript(四)
2019-11-29 14:27:48
魔趣-nexus源码编译
2019-11-29 14:27:48
不用科学梯子下载mokee-mkq-mr1分支安卓10.0源码
2019-11-29 14:27:48
Linux学习-菜鸟教程知识(一)
2019-11-29 14:27:46
git学习-菜鸟教程知识
2019-11-29 14:27:46
Linux学习-菜鸟教程知识(二)
2019-11-29 14:27:46
python切割Excel
2019-11-29 14:27:46
Linux学习-菜鸟教程知识(三)
2019-11-29 14:27:47