面向对象的进一步深入了解

1.This关键字

在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,

常常用来区分同名的成员变量和局部变量。

this关键字代表当前对象 使用this关键字引用成员变量

使用this关键字引用成员方法或构造方法。

this的功能

  1. 引用当前对象的成员:当局部变量和类的成员变量同名时,可以用this来区分它们。

  2.  在构造器中调用另一个构造器:可以在一个构造器中使用this()来调用同一个类的另一个构造器。

在链式调用中:在setter方法中返回this可以使得可以进行链式调用。

注意:

1,this只能在类的非静态方法中使用,因为静态方法不属于任何对象实例。

2,this不能用于静态方法、静态初始化块或实例初始化块中。

3,this关键字不能在方法外部使用,如类之外或方法之外。

2.static

含义:static被称为静态,可以用来修饰类的成员变量,成员方法,代码块,内部类。静态成员不依赖于类的实例,被类的所有实 例共享,就是说 static 修饰的方法或者变量不需要依赖于对象来进行访问,只要这个类被加载,静态成员就会被加载创建。


特点:


随着类的加载而加载
优先于对象存在
修饰的成员,被所有对象所共享
可不创建对象,直接使用类名调用

属性:

static 修饰的成员方法就是静态方法。
静态方法在本类的任意方法、代码块、构造器中都可以直接被调用。
静态方法在其他类中可以通过类名.静态方法的方式调用。也可以通过对象.静态方法的方式调用(但是更推荐使用类名.静态方法的方式),
在static方法内部只能访问类的static修饰的属性或方法,不能访问类的非static的成员。
因为不需要实例就可以访问static方法,因此static方法内部不能有this,也不能有super。

static--静态 可以修饰类中的成员变量,成员方法,代码块,内部类 static修饰属性(成员变量)

static关键字修饰的属性特点: 静态成员变量也称为类变量,在内存中只有一份,所有对象可以共享,一般情况下,将类中所有对象都相同的属性设置为静态的. static修饰内容,随着类的加载而加载,类只要被加载了就可以直接通过类名访问, 优先于对象存在 静态成员被被所有的对象共享 可以直接使用类名访问(建议) static修饰成员方法,修饰的成员方法也称为类方法,可以直接使用类名访问.在静态的方法中只能访问静态的成员变量, 非静态的方法中可以使用静态的成员变量

3.代码块

代码块在类中声明,类似一个没有名称的方法体(代码块),代码分实例块和静态实例块:

每次创建对象时自动调用

静态块:类加载时自动调用,仅一次,与是否创建对象无关

4.包:

当项目越写越大,用到了类越来越多 会出现同名类,如何按照不同的功能管理类

1.java中使用包机制来管理类

Java 引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类管理等问题。

·使用package关键字修饰包 ·每个类属于一个特定的包,所以java中一个类的完整名称等于包名+类名

2.包的作用:

1.按照不同功能管理类
2.避免类重名
3.控制访问权限
包名命名,如何创建多级包

包目前至少3级

第-级 项目类型 com grg gov edu
第二级 公司名字baidu sun huawei
第三级 项目名字oa cms erp
第四级 功能模块 web service dao config

5.访问权限修饰符

1.访问权限修饰可以修饰类,成员变量,成员方法,内部类 访问权限修饰符共有4种:

public:公共权限 修饰类,成员变量,成员方法,内部类

protected: 受保护权限 修饰成员变量,成员方法,

内部类什么都不写:默认权限 修饰类,成员变量,成员方法,内部类

private:私有权限 修饰成员变量,成员方法,内部类

相关推荐

  1. 面向对象特征

    2024-02-23 11:40:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 11:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 11:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 11:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 11:40:02       18 阅读

热门阅读

  1. docker-集成测试搭建

    2024-02-23 11:40:02       27 阅读
  2. #LLM入门|Prompt#1.9_总结_Summary

    2024-02-23 11:40:02       22 阅读
  3. DevOps:实现软件开发与运维的协同革命

    2024-02-23 11:40:02       29 阅读
  4. 初学python适合掌握的20个小技巧

    2024-02-23 11:40:02       19 阅读
  5. 重磅!MongoDB推出Atlas Stream Processing公共预览版

    2024-02-23 11:40:02       28 阅读