Java面向对象(二)

简介: Java面向对象(二)

本文详细解释了Java中的this关键字用于类内部引用成员变量,static关键字的使用场景和特点,包括静态变量和静态方法,以及包的概念、命名规范和访问权限修饰符的作用。

this关键字

在一个类的内部可以使用this关键字来引用成员变量名,区分成员变量和局部变量.

this在类中表示当前正在访问的对象

//this在类中用来表示当前正在访问的对象, this.成员变量名--显示的访问当前对象的成员变量
     public Person(String name,int age,String gender){
           this.name = name;
           this.age = age;
           this.gender  = gender;
     }

static关键字

static---静态

可以修饰类中的成员变量,成员方法,代码块,内部类(不能修饰构造方法)

1.修饰成员变量

静态成员变量也称类变量,在内存中只有一份,所有对象可以共享,一般情况下,将类中所有对象都相同的属性设置为静态的。

2.修饰成员方法

修饰的成员方法也称为类方法,可以直接使用类名访问,在静态的方法中只能访问静态的成员变量,非静态的方法中可以使用静态的成员变量。

(静态的方法中不能用this关键字,也不能用super关键字)

注意:

静态的方法中,只能使用静态的成员变量,因为他们都是随着类的加载而加载的;

一旦方法中使用了非静态的成员变量,那么此方法就不能定义为静态的;

但非静态的方法中可以使用静态的成员变量。

static关键字修饰的属性特点:

<1>随着类的加载而加载

<2>优先于对象存在

<3>静态成员被所有对象共享

<4>可以直接使用类名访问

代码块

概念:在类中声明的一个没有名字的代码块


分类:实例代码块:在每次创建对象时执行                    {  实例代码块内容  }


          静态代码块:在类被加载时自动执行          static {   静态代码块内容   }


类什么时候会被加载?

<1>运行类中的main方法

<2>访问类中的静态成员变量,静态成员方法

<3>创建类的对象

 
public class Demo1 {
 
    //实例代码块
    {
        System.out.println("1-创建对象时,不需要显示的调用,会自动执行");
    }
    //静态代码块
    static{
        System.out.println("2-在类被加载时,会自动执行");
    }
    //运行类中的main方法,此时类被加载,静态代码块执行
    public static void main(String[] args) {
    //创建对象,实例代码块执行
        new Demo1();
    }
}

问题:项目越写越大,用到的类越来越多,会出现同名类,如何安照不同的功能管理类

java中使用包机制来管理类

包的命名规范

在包名中,可以使用.号来区分包的级别,包目前至少三级,包名一般情况用小写表示

第一级 项目类型  如:com  org  gov  edu

第二级 公司名称  如:baidu   huawei

第三级 项目名称

第四级 指项目模块的名称

包的作用:

1. 按照不同功能管理类  

2. 避免类重名

3. 控制访问权限

访问权限修饰符

(访问权限修饰符可以修饰类,成员变量,成员方法,内部类.)

public :公共权限

protected :受保护权限

什么都不写 :默认权限(default)

private :私有权限


公共权限----------修饰的成员,在任何地方都可以访问到.


受保护权限-------在本类,同包的其他类中可以访问到,不同包的子类.


默认权限----------在本类,同包的其他类中可以访问到.


私有权限----------只能在本类访问到.


( protected和默认(default)的区别就是,protected可以在不同包的子类中访问 )

相关文章
|
17天前
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
|
7天前
|
Java
Java编程思想(面向对象)第四版PDF分享
探索《Java编程思想》第四版,理解Java不仅是特性集合,更是解决问题的强大工具。本书深入设计层面,构建编程思维模型,助你逐步精通Java。[阅读更多](https://zhangfeidezhu.com/?p=355) ![Java编程思想](https://ucc.alicdn.com/pic/developer-ecology/nrw3f3oqlpmag_c8ff959a921545f1bbabcefd37f029cf.png)
19 1
Java编程思想(面向对象)第四版PDF分享
|
2天前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
|
2天前
|
Java
Java面向对象 ( 多态 | final关键字 | 接口 )
Java面向对象 ( 多态 | final关键字 | 接口 )
|
2天前
|
Java
Java面向对象 ( 类与对象 | 构造方法 | 方法的重载 )
Java面向对象 ( 类与对象 | 构造方法 | 方法的重载 )
|
12天前
|
存储 Java C语言
Java面向对象课程设计--类管理系统
Java面向对象课程设计--类管理系统
17 1
|
12天前
|
Java
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
|
15天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
28 3
|
2天前
|
Java 关系型数据库 开发者
Java中的面向对象设计原则与实践
Java中的面向对象设计原则与实践
|
2天前
|
Java
Java面向对象知识总结+思维导图
Java面向对象知识总结+思维导图