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可以在不同包的子类中访问 )

相关文章
|
16天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
19 1
|
29天前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
24 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
37 2
|
3月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
3月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
36 4
|
3月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
2月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
19 0
|
4月前
|
Java 数据处理 开发者
【Java基础面试十二】、说一说你对面向对象的理解
这篇文章阐述了面向对象是一种以类和对象为基础,通过封装、继承和多态等概念来模拟现实世界中的事物及其相互关系的程序设计方法,它强调以事物为中心进行思考和系统构造,与结构化程序设计相比,更符合人类的自然思维方式。
【Java基础面试十二】、说一说你对面向对象的理解
|
3月前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
74 2
|
4月前
|
Java
【Java基础面试十三】、面向对象的三大特征是什么?
这篇文章介绍了面向对象程序设计的三大基本特征:封装、继承和多态,其中封装隐藏对象实现细节,继承实现软件复用,多态允许子类对象表现出不同的行为特征。
【Java基础面试十三】、面向对象的三大特征是什么?
下一篇
DataWorks