面向对象2
发布日期:2021-06-27 12:55:45 浏览次数:40 分类:技术文章

本文共 1446 字,大约阅读时间需要 4 分钟。

文章目录

面向对象2

封装

封装的意义在于保护或者防止代码(数据)被无意破坏。保护成员属性,不让类意外的程序直接访问和修改。

封装的原则: 隐藏对象的属性和实现细节,仅对外公开访问方法,并且控制访问界别。

1、this关键字的使用

使用this关键字可以完成以下操作:

  1. 调用类中的属性;
  2. 调用类中的方法或构造方法;
    在一个构造方法中调用另一个构造方法时,调用的代码必须编写在构造方法的第一行。
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); } }
  1. 表示当前对象

2、static

static表示“静态”的意思,可以用来修饰成员变量和成员方法

即,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

并且不会因为对象的多次创建 而在内存中建立多份数据

关于类的特性

  1. 静态成员 在类加载时加载并初始化。
  2. 无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所有对象公用 )
  3. 在访问时: 静态不能访问非静态 , 非静态可以访问静态
    因为静态修饰的方法,在被调用时,有可能对象还未创建

例如:

//在类加载时,静态方法已经加载并初始化,而此时对象还没有创建//因此可以在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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:面向对象3
下一篇:面向对象基础

发表评论

最新留言

关注你微信了!
[***.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
kettle调用java程序_Kettle ETL调用 java代码来进行数据库的增删改查 2019-04-21
mysql 取两个时间差 php_在php和MySql中计算时间差的方法详解 2019-04-21
mysql 重启数据库实例_mysql 单机多实例重启数据库服务 2019-04-21
collator java_Java Collator getInstance(Locale)用法及代码示例 2019-04-21
dtc mysql_DTCC归来-高可用可扩展数据库架构探讨 2019-04-21
java怎样将日期本土化_Java中的日期操作 2019-04-21
java生产者消费者模型到精通_java生产者消费者模型 2019-04-21
java 执行 awk_3.1 biostar lesson3 linux学习日记;java版本;awk 2019-04-21
java二叉树求权值_百度笔试题目:二叉树路径权值和【转】 2019-04-21
欧亚马 java折叠车_如何选择欧亚马折叠车? 2019-04-21
python函数代码块以什么开头_Python初体验-开篇 代码全析 2019-04-21
java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc 2019-04-21
java中的无效的列类型_java.sql.SQLException: 无效的列类型: 1111 2019-04-21
php rewrite url_PHP_URL Rewrite的设置方法,URL Rewrite需要服务器的支持! - phpStudy 2019-04-21
php读取大文件某行内容,PHP读取和修改大文件的某行内容_PHP教程 2019-04-21