面向对象 类与对象
类
类是一种抽象的数据类型,它是对某一类事务整体描述/定义,但是并不能代表一个具体的事务。
- 动物、植物、手机、电脑……
- Person类,Pet类、Car类等,这些类都是用来描述/定义某一类具体的事务应该具备的特点和行为
对象
对象是抽象概念的具体实例
- 张三就是人的一个具体事例,张三家里的旺财就是狗的一个具体事例。
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。
创建类的对象
创建类的对象=类的实例化
创建person类的对象
Person p1=new Person();
类和对象的使用
- 创建类,设计类的成员
- 创建类的对象
- 通过“对象.属性”或“对象.方法”调用对象的结构
理解“万事万物皆对象”
- 在java语言范畴中,我们都将功能、结构等封装到类中。通过类的实例化,来调用具体的功能结构。
- 涉及到java语言与前端Html、后端的数据库交互时,前后端的结构在java层面交互时,都体现为类、对象。
类与对象练习
package com.yicurtain.Object;
import java.util.Arrays;
public class Practice {
public static void main(String[] args) {
int[] a= new int[]{5,1,2,4,6};
Arrayutil arrayutil = new Arrayutil();
arrayutil.Max(a);
System.out.println("这个数组的最大值为:"+arrayutil.Max(a));
arrayutil.Sum(a);
System.out.println("这个数组的最和为:"+arrayutil.Sum(a));
arrayutil.sort1(a);
System.out.println("冒泡排序的结果为:"+ Arrays.toString(arrayutil.sort1(a)));
}
}
class Arrayutil{
//求一个数组的最大值
public int Max(int[] a){
int Maxvalue=a[0];
for (int i = 1; i < a.length; i++) {
if (a[i]>Maxvalue){
Maxvalue=a[i];
}
}
return Maxvalue;
}
//求一个数组的和
public int Sum(int[] a){
int sum=0;
for (int i = 0; i < a.length; i++) {
sum=sum+a[i];
}
return sum;
}
//利用冒泡排序,将一个数组由小到大排序
public int[] sort1(int[] array) {
int temp = 0;
for (int i = 0; i < array.length - 1; i++) {
boolean flag = false;
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j + 1] < array[j]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = true;
}
}
if (flag == false) {
break;
}
}
return array;
}
}
方法的重载
-
定义:在同一个类中,允许存在一个以上的 同名方法,只要他们的参数个数或者参数类型不同即可。
“两同一不同”:同一个类,同一个方法名
参数列表不同,参数个数不同,参数类型不同0。
-
判断是否重载:
跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系。
方法重载练习
package com.yicurtain.Object;
public class demo03 {
//方法的重载
public static void main(String[] args) {
getSum getSum = new getSum();
getSum.sum(1,2);
getSum.sum(2.0,3.0);
}
}
class getSum{
public void sum(int i,int j){
int sum1=i+j;
System.out.println("两个数的和为:"+ sum1 +"\t1");
}
public void sum(double i,double j){
double sum2=i+j;
System.out.println("两个数的和为:"+ sum2+"\t2");
}
}