黑马程序员----面向对象(OOP)

------- android培训java培训、期待与您交流! ----------

面向对象OOP (Object-Oriented Programing)

和面向过程一样是一种编程思想且面向过程基于面向对象

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

三个特征  封装 继承 多态

实际开发就是找对象 创建对象 使用对象

类              是对对象的描述 (类名 域 方法)

对象中的成员变量作用于整个类 存在于堆中

局部变量   作用于局部 存在于栈内

匿名对象使用范围 仅使用一次时或者 作为实参传递

 

封装(Encapsulation)

隐藏对象属性和实现细节,仅对外提供公共访问方式

好处    将变化隔离

                   便于使用

                   提高重用性

                   提高安全性

原则         将不需要对外提供的内容隐藏把属性隐藏提供公共方法对其访问

private 私有 权限修饰 只在本类中有效

提供对外访问方式可以在访问中加入逻辑判断语句对访问数据的操作提高代码健壮性

 

构造函数

给对象初始化

函数名和类名相同

不可以定义返回值类型

不可以写 return

在对象建立时给对象初始化

 

构造代码块

对所有对象统一初始化和不同对象共性的初始化

 

this 引用当前对象

表示调用函数的对象

构造函数间的调用


class  Person
{
	private String name;
	private int age;
/*
构造代码块给所有对象统一初始化
构造代码块对对应对象初始化
不同对象共性的初始化
*/
	{
		System.out.println("构造代码块");
	}

	public void setName(String name)
	{
		this.name = name;//this 引用当前对象
	}

	public String getName()
	{
		return name;
	}
	
	Person()//构造函数
	{
		System.out.println("nihao");
	}

	Person(String name)//构造函数
	{
		this.name = name;
		//System.out.println("name="+this.name);
	}
	
	

	Person(String name,int age)//构造函数
	{
		this(name);//构造函数之间相互调用
		this.age = age;
		//System.out.println("name="+this.name+"	age="+this.age);
	}
}
class PersonDemo
{
	public static void main(String[] args)
	{
		//Person p1 = new Person();
		
		Person p2 = new Person("huang");
		p2.setName("jihui");
		System.out.println("name="+p2.getName());
		//Person p3 = new Person("ji",10);
	}
}


编写工具集 并使用

/**
这是一个 可以对数组操作的工具类 提供取最值,排序功能
@auther huang
@version V1.1

*/
class ArryTool
{
	/**
	取最大数
	@param arr 接收一个 int型数组
	@return 返回改组最大数值
	*/
	public static int getMax(int [] arr)
	{
		int max = 0;
		for (int i=0;i<arr.length;i++ )
		{
			if(arr[max]<arr[i])
					max = i;
		}
		return arr[max];
	}
	/**
	取最小数
	@param arr 接收一个 int型数组
	@return 返回改组最小数值
	*/
	public static int getMin(int[] arr)
		{
			int min = 0;
			for(int i=1;i<arr.length;i++)
			{
				if (arr[min]>arr[i])
					min = i;
			}

			return arr[min];
		}
	/**
	选择排序
	@param arr 接收 int型数组
	*/
	public static void selectSort(int[] arr)
	{
		for(int i=0;i<arr.length-1;i++)
		{
			for(int j=i+1;j<arr.length;j++)
			{
				if(arr[i]>arr[j])
				{
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
	}
	/**
	冒泡排序
	@param arr 接收 int型数组
	*/
	public static void bubbleSort(int[] arr)
	{
		for (int x=0;x<arr.length-1 ;x++ )
		{
			for(int y=0; y<arr.length-x-1; y++)
			{
				if(arr[y]>arr[y+1])
				{
					int temp = arr[y+1];
					arr[y+1] = arr[y];
					arr[y] =temp;
				}
			
			}
		}	
		snow(arr);
	}

	private static void snow(int[] arr)
	{
		for (int i=0;i<arr.length ;i++ )
		{
			System.out.println(arr[i]);
		}
	}


}

在函数中调用此工具集

class  ArryToolTest
{
	public static void main(String[] args) 
	{
		int[] arr = {54,48,79,41,66};
		//int max = ArryTool.getMax(arr);
		//int min = ArryTool.getMin(arr);
		//System.out.println(min);
		ArryTool.bubbleSort(arr);
		
	}
}



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值