------- 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);
}
}