第六章 面向对象编程基础总结

目录

面向过程与面向对象的区别

一、面向对象概述

1、对象

2、类

3、面向对象程序设计的特点

(1)、封装

(2)、继承

(3)、多态

二、类与对象

1、成员变量

 2、成员方法

 3、构造方法

4、局部变量 

5、局部变量的有效范围

6、对象的创建

7、访问对象的属性和行为 

8、对象的销毁

9、this关键字

三、static 关键字 

1、静态变量

2、静态常量 

 3、静态方法

4、静态代码块

 四、类的主方法

五、小结 


面向过程与面向对象的区别

面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。

面向过程思想偏向于我们做一件事的流程,首先做什么,其次做什么,最后做什么。

面向对象思想偏向于了解一个人,这个人的性格、特长是怎么样的,有没有遗传到什么能力,有没有家族病史。

一、面向对象概述

1、对象

通常都会将对象分为两个部分:既静态部分和动态部分。

静态部分,顾名思义,就是不能动的部分,这个部分被称之为“属性”,任何对象都具备其自身属性,如一个人,其属性包括高矮、胖瘦、性别、年龄等。然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分),人类通过探讨对象的属性和观察对象的行为了解对象。

2、类

不能将所谓的一个事物描述成一类事物,有一只鸟不能称为鸟类,如果需要对同一类事物统称,就不得不说明类这个概念.

类是封装对象属性和行为的载体。反过来说,具有相同属性和行为的一类实体被称为类。

3、面向对象程序设计的特点

面向对象程序设计具有以下特点:封装性。继承性。多态性。

(1)、封装

封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。

(2)、继承

类与类之间同样具有关系,如一个百货公司类与销售员类相联系,类之间的这种关系被称为关联。

(3)、多态

上面介绍了继承,了解了父类和子类,其实将父类对象应用于子类的特征就是多态,多态的实现并不依赖具体类,而是依赖于抽象类和接口。

二、类与对象

java中定义类使用class关键字,语法如下:

class   类名称{

//类的成员变量

//类的成员方法

}

1、成员变量

在Java中对象的属性也称为成员变量,成员变量的定义与普通变量的定义一样,语法如下:

数据类型   变量名称  [  =值] ;

 2、成员方法

定义成员方法的语法格式如下:
[权限修饰符][返回值类型]方法名([参数类型 参数名])[throws 异常类型]{
…//方法体
return 返回值;

定义一个add方法,用来计算两个数的和,该方法中有两个形参,但在方法体中,对其中的一个形参x执行加y操作,并返回x;在main方法中调用该方法,为该方法传入定义好的实参;最后分别显示调用 add 方法计算之后的x值和实参x的值。
代码如下:

package d6z;

public class Book {//创建类

	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		Book book = new Book();//创建Book对象
		int x = 30;//定义实参变量x
		int y = 40;//定义实参变量y
		System.out.println("运算结果:" + book.add(x, y));//输出运算结果
		System.out.println("实参x的值:" + x);//输出实参x的值
	}
	private int add(int x,int y)//计算两个数的和
	{
		x = x + y;//对x进行加y操作
		return x;//返回x
	}

}

运行结果:

定义一个change方法,该方法中有一个形参,类型为数组类型,在方法体中,改变数组的索引0、1、2这3处的值;在main方法中定义一个一维数组并初始化,然后将该数组作为参数传递给 change 方法,最后输出一维数组的元素。

代码如下:

package d6z;

public class RefTest2 {//创建类

	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		RefTest2 refTest = new RefTest2();//创建对象
    	int[] i = { 0, 1, 2 }; //定义一维数组,作为方法的实参
    	//输出一维数组的原始元素值
    System.out.print("原始数据:");//输出信息
    for (int j = 0; j < i.length; j++)//for循环
    {
        System.out.print(i[j]+" ");//输出信息
    }
    refTest.change(i);//调用方法改变数组元素的值
    System.out.print("\n修改后的数据:");//输出信息
    for (int j = 0; j < i.length; j++)//for循环
    {
        System.out.print(i[j]+" ");//输出信息
    }
}
//定义一个方法,方法的参数为一维数组(形参)
public void change(int [] i)
{
    i[0] = 100;//情况1
    i[1] = 200;//情况2
    i[2] = 300;//情况3
	}

}

 运行结果:

定义一个add方法,用来计算多个int类型数据的和,在具体定义时,将参数定义为int类型的不定长参数;在main方法中调用该方法,为该方法传入多个int类型的数据,并输出计算结果。

代码如下:

package d6z;

public class MultiTest {//创建类

	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		Mu
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值