【Java面向对象】类与对象

一、类的基本概念

1、类与对象

(1)类和对象概念

类:对某一类事物的描述,是抽象的、概念上的定义
对象:实际存在的属该类事物的具体的个体,因而也称为实例(instance)

类是对象的模板、图纸;对象是类的一个实例,是实实在在的个体。一个类可以对应多个对象。

(2)类的构成:数据成员+函数成员

  • 数据成员:域变量、属性、成员变量等。表示类的属性。
  • 函数成员:成员方法、方法等。描述对象的行为。

二、定义类

1、类修饰符:4种

修饰符含义
public将一个类声明为公共类,它可以被任何对象访问
abstract将一个类声明为抽象类,没有实现方法,需要子类提供方法的实现,所以不能创建该类的实例
final将一个类声明为非继承类,表示它不能被其他类继承
缺省表示只有在相同包中的对象才能使用这样的类

注意:同一个Java程序内,若定义了多个类,则最多只能有一个类声明为public,这种情况下文件名称必须和声明成 public 的类的名称相同。

2、成员变量

(1)格式

[修饰符] 变量类型 变量名 [=初值];

(2)成员变量的修饰符

4种访问控制符+4种修饰符

修饰符含义
public公共访问控制符。指定该变量为公共的,它可以被任何对象的方法访问
private私有访问控制符。指定该变量只允许自己类的方法访问,其他任何类(包括子类)中的方法均不能访问此变量。
protected保护访问控制符。指定此变量只可以被它自己的类及其子类或同一包中的其他类访问,在子类中可以覆盖此变量
缺省缺省访问控制符。表示同一个包中的其他类可以访问此变量,而其他包中的类不能访问该变量
final最终修饰符。指定此变量的值不能改变
static静态修饰符。指定此变量被类的所有对象共享,即所有的实例都可以使用该变量
transient过渡修饰符。指定该变量是一个系统保留,暂无特别作用的临时性变量
volatile易失修饰符。指定该变量可以同时被几个线程控制和修改

3、成员方法

(1)成员方法修饰符

修饰符含义
public公共访问控制符。指定该方法为公共的,它可以被任何对象的方法访问
private私有访问控制符。指定该方法只允许自己类的方法访问,其他任何类(包括子类)中的方法均不能访问此方法。
protected保护访问控制符。指定此方法只可以被它自己的类及其子类或同一包中的其他类访问
缺省缺省访问控制符。表示同一个包中的其他类可以访问此成员方法,而其他包中的类不能访问该成员方法
final最终修饰符。指定此方法不能被重载
static静态修饰符。指定不需要实例化一个对象就可以调用的方法
abstract抽象修饰符。指定该方法只声明方法头,而没有方法体,抽象方法需要在子类中被实现
synchronized同步修饰符。在多线程程序中,该修饰符用于对同步资源加锁,以防止其他线程访问,运行结束后解锁
native本地修饰符。指定此方法的方法体是由其他语言(如C)在程序外部编写的

4、成员变量与局部变量的区别

成员变量:属于类的变量
局部变量:属于方法的变量

(1)从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被访问控制符(public、private、protected)、static修饰符修饰,而局部变量则不能被访问控制符与static修饰。
注:成员变量和局部变量都可以被final修饰

(2)从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在堆内存中,而局部变量存在于栈内存中

(3)从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失

(4)成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但没有被static修饰的成员变量必须显示地赋值);而局部变量则不会自动赋值,必须显示地赋值后才能使用

三、对象的创建与使用

使用类创建对象,可以将对象理解为一种新型的变量。对象一旦完成了他的工作,将被销毁,所占用的资源将被系统回收以供其他对象使用。

1、创建对象

与数组创建类似

2、对象的使用

注:Java程序中有n个类,编译后产生n个.class文件

3、在类定义内调用方法

this关键字

四、参数的传递

this指定成员变量,用于区分成员变量和局部变量。

注意:当参数是基本数据类型时,则是传值方式调用;当参数是引用型的变量时,则是传址方式调用。

五、匿名对象

1、概念

当一个对象被创建之后,在调用该对象的方法时,不定义对象的引用变量,而直接调用这个对象的方法,这样的对象叫做匿名对象

2、场景

(1)一个对象只需要进行一次方法调用
(2)将匿名对象作为实参传递给一个方法调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值