JavaSE笔记6.1-面向对象-概述

一. 面向对象概述

面向过程:强调的是功能行为
面向对象:将功能封装进对象,强调具备了功能的对象
面向对象的特征:封装、继承、多态

二. 类与对象的关系

1. 定义类

Java中用类class来描述事物,描述事物其实就是在描述事物的属性和行为。
属性:对应类中的成员变量
行为:对应类中的成员函数
定义类就是在定义类中的成员(成员变量和成员函数)

2. 创建对象

在Java中通过new操作符来完成,其实就是在堆内存中产生一个实体,类类型变量指向对象。
指挥对象的用法:对象.对象成员

3. 对象内存结构

class Car  
{
     
	//成员变量color和num
	String color="红色";
	int num=4;
	//成员函数run()
	void run()
	{
     
		System.out.println(color+".."+num);
	}
}

class CarDemo
{
     
	public static void main(String[] args)
	{
     
		Car c1=new Car();
		c1.color="blue";
		Car c2=new Car();
	}
}

JavaSE笔记6.1-面向对象-概述_第1张图片

三. 成员变量和局部变量

1. 作用范围

成员变量定义在类中,在整个类都可以被访问;
局部变量只定义在局部范围内,如:函数内、语句内等;

2. 内存

成员变量随着对象的建立而建立,存在于对象所在的堆内存中;
局部变量存在于栈内存中,变量作用的范围结束,变量空间会自动释放;

3. 默认初始化值

成员变量有默认初始化值;
局部变量没有默认初始化值;

四. 匿名对象

1. 使用方式1

当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化;
如果对一个对象进行多个成员调用,必须给这个对象起一个名字。

class CarDemo
{
     
	public static void main(String[] args)
	{
     
		Car q=new Car();
		show(q);
	}
	//需求:汽车修配厂,对汽车进行改装
	//将来的汽车改成黑色,轮胎数改成3
	public static void show(Car c)
	{
     
		c.num=3;
		c.color="black";
		c.run();
	}
}

JavaSE笔记6.1-面向对象-概述_第2张图片
匿名对象用法:

class CarDemo
{
     
	public static void main(String[] args)
	{
     
		show(new Car());
	}
	//需求:汽车修配厂,对汽车进行改装
	//将来的汽车改成黑色,轮胎数改成3
	public static void show(Car c)
	{
     
		c.num=3;
		c.color="black";
		c.run();
	}
}

JavaSE笔记6.1-面向对象-概述_第3张图片

2. 使用方式2

可以将匿名对象作为实际参数进行传递

你可能感兴趣的:(JavaSE,JavaSE,面向对象,内存结构,成员变量,匿名对象)