java基础06

面向对象:

  是相对与面向过程而言的一种编程思想。

  面向过程:强调完成功能的过程。

  面向对象:关注完成功能的结果。只管哪个对象完成这个功能

            将功能封装进对象,强调具备了功能的对象

面向对象是基于面向过程。

思想特点:

        是一种符合人们思考习惯的思想

        可以将复杂的事情简单化

         将程序员从执行者转换成了指挥者

以后在完成任何需求的时候,先找有没有具备这种功能的对象,如果有就用,如果没有就自己写出来,将来还可以方便别人使用。

举例说明:

A:买电脑。

面向过程:了解---->抵达------->找牌子--->查配置单--->付款

面向对象:找懂的人,把钱给他,最后拿电脑

 

面试举例:

写程序。

如何更好的让我们的程序是面向对象的呢?

分析存在那些类(或者对象)推荐:(UML统一建模语言)名词提取法。

分析每个类可以做什么。

分析类与类之间的关系。


类与对象:

我们学习的编程语言,都是为了把现实世界的事物给描述出来。通过编程语言来模拟现实世界的操作。


现实世界的事物:

外在特征:外在的属性描述

内在的行为:具备的功能

Java语言里的最基本单位是:类。

编程语言里的类:

成员变量(字段,属性):定义在类里边,方法外。

成员方法(函数):不用static修饰的函数

 

类:是具有相同属性和行为的一类事物的抽象

对象:是该类事物的具体表现形式。具体存在的个体。实例。

 

怎样才能符合面向对象的思想呢?

分析有哪些类存在

每个类都有哪些成员

类与类的关系

创建类:

首先把该事物用特征和行为体现出来,把该事物转换为java中的类,最后创建对象调用

使用类:

要想使用学生类的成员变量和方法,

步骤

创建对象: 类名 变量名 = new 类名();

使用成员变量和方法对象名.变量   对象名.方法名();

 

注意:在一个java文件里可以定义多个类、这个时候的类名必须和带main方法的类名一致

 

成员变量和局部变量的区别:

在类中的位置区别:

局部变量:方法中

成员变量:类中,方法外

在内存中的区别:

局部变量:在栈中

成员变量:在堆中:

生命周期的区别:

局部变量:随之方法的调用而存在,随之方法的调用完毕而消失

成员变量:随之对象的创建而存在,随之对象的消失而消失

初始化值的区别:

局部变量:没有初始化值,使用前必须先声明,再赋值,最后在使用

成员变量:都有默认初始化值。

 

匿名对象:没有名字的对象

用法:

只调用一次方法。匿名对象使用完毕后就是垃圾了。

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

 

成员变量不给值和给值的区别:先走默认初始化然后显示初始化

一般推荐不给显示值,因为只有在类的实例化时才明确成员变量

 

类是多个相关的属性和行为的抽象。

只有变量是类的外在特征的时候,才可以定义为成员变量。

如果多个范围都适合定义变量,建议永远在小范围,生命周期短,效率高。

案例:‘

/*
	注意:类是相关的属性和行为的抽象。
	      只有变量是类的外在特征的时候,才可以定义为成员变量。

	如果多个范围都适合定义变量,该怎么办?
		建议永远在小范围。

	写一个长方形类,里面有求周长和面积的功能。
    然后在测试类中进行测试。
	
	在一个java文件中,import一定优先于class存在。
*/
import java.util.Scanner;

class RectTest {
	public static void main(String[] args) {
		Rect r = new Rect();
		
		//给长和宽赋值
		//r.length = 10;
		//r.width = 5;

		Scanner sc = new Scanner(System.in);
		System.out.println("请输入长方形的长:");
		r.length = sc.nextInt();
		System.out.println("请输入长方形的宽:");
		r.width = sc.nextInt();
		

		int zhouChang = r.getZhouChang();
		int area = r.getArea();

		System.out.println("该长方形的周长是:"+zhouChang);
		System.out.println("该长方形的面积是:"+area);
	}
}

class Rect {
	//长
	int length;
	//宽
	int width;

	//求周长
	public int getZhouChang() {
		return (length + width)*2;
	}

	//求面积
	public int getArea() {
		return length * width;
	}
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值