java面向对象

本文围绕Java面向对象编程展开,介绍了面向对象与面向过程的思维差异,阐述类的设计和对象实例化,包括类的定义语法和对象创建方式。还讲解成员访问,如static和this关键字的使用,以及构造方法的定义、调用、重载和代码块的执行情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.面向对象简介

面向过程:看待问题,解决问题的思维方式,着眼于问题是如何一步一步解决的,然后亲力亲为的解决这个问题。

面向对象:看待问题,解决问题的思维方式,着眼于找到一个能够解决问题的实体,然后委托这个实体去解决问题。

注意事项:

java是一个面向对象的语言,用java可以更加方便的写出具有面向对象编程思想的程序。

用面向对象的语言写出的代码一定是面向对象的代码?错!!!

2.类的设计和对象的实例化

对象:能够解决问题的实体,

类:由若干个具有相同属性和行为的实体的集合。

类和对象之间的关系:

  • 对象是类的实体
  • 类是对象的集合

先有类后有对象!

2.1类的设计

关键字class

语法

[访问权限修饰符] class 类名{

//实体 

}

类名是一个标识符,遵循大驼峰命名法。

类是一个自定义的类型。

2.2对象的实例化

在实例化对象的时候,其实是在堆上开辟了一块空间,然后将这个空间的地址给左边的变量赋值。

Person xiaoming = new Person();

3.成员访问

访问类中属性和方法,通过 语法

3.1static关键字

静态的属性:没有在对象实例化时开辟空间,也没有在堆上开辟空间。

  • 静态属性在常量池中(包含在方法区)开辟空间。
  • 静态属性空间开辟是发生在类第一次被加载到内存中的时候(第一次使用这个类的时候,包括实例化对象,调用静态方法)
  • 静态的属性应该用类来访问。

非静态的属性:

  • 在堆上开辟空间
  • 开辟空间发生在对象实例化的时候
  • 需要对象来访问

静态方法:

  • 属于类,需要类来调用

非静态方法:

  • 属于对象,需要对象来调用

注意:在静态方法中不能调用非静态成员;在非静态方法中,可以直接访问静态和非静态成员。

3.2this关键字

this:

  • 用在非静态方法和构造方法中,不能用在静态方法中。
  • 代表当前对象的引用,哪个对象调用这个方法,就是指的谁。

3.3成员访问

类中的每一个成员,在访问的时候都需要一个主体,但是这个访问的主体,在某些情况下是可以省略的。

  • 在静态方法中
  1. 可以直接访问当前类的静态成员,此时调用主体当前类可以被省略。
  • 在非静态方法中
  1. 可以直接访问当前类的静态成员,此时调用主体当前类可以被省略。
  2. 可以直接访问当前类的非静态成员,此时调用主体this可以被省略。

不能省略的情况,方法的参数和属性同名!

4.构造方法

4.1构造方法的定义和调用

定义:

  • 构造方法不能用返回值类型
  • 其他的修饰符也不允许存在
  • 构造方法的方法名要和类名一致

[访问权限修饰符] 类名([参数列表]){

}

调用:

  • 在实例化对象的时候用new调用
  • 在构造方法中调用重载的构造方法用this,且要放在首行

特点:

  • 如果类中没有定义构造方法,则系统会默认自动添加一个public修饰的无参构造方法
  • 如果一个类中定义了构造方法,则系统不会再默认提供任何构造方法

4.2构造方法的重载

构造方法的重载和普通方法的重载类似,但是由于没有返回值,所以只是参数的个数和类型不同。

4.3代码块

  • 非静态
  1. 实例化对象的时候执行,构造方法之前执行
  2. 非静态代码块执行顺序遵循书写顺序
  3. 非静态代码块主要用来进行属性初始化操作,和构造方法的功能类似,所以一般不用。
  • 静态
  1. 当这个类第一次被加载到内存(虚拟机)中的时候执行

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值