JAVA day04 数组排序,类和对象

本文介绍了两种基本的排序算法——冒泡排序和选择排序,详细讲解了它们的实现过程。同时,深入探讨了面向对象编程中的类与对象概念,包括类的定义、成员变量与局部变量的区别,并通过示例展示了如何创建类的对象并调用其方法。通过这些内容,读者可以更好地理解和应用Java编程中的排序算法及面向对象思想。
摘要由CSDN通过智能技术生成

数组排序

1.冒泡排序


import java.util.Arrays;

//冒泡排序
public class Deom01 {

	public static void main(String[] args) {
		int[] arr =  {22,52,88,2,0};
		//调用
		bubbleSort(arr);
		System.out.println(Arrays.toString(arr));
		
	}
	public static void bubbleSort(int[] arr) {
		for(int i=0;i<arr.length-1;i++) {
			for(int j=0;j<arr.length-1-i;j++) {
				if(arr[j]>arr[j+1]) {
					int temp = arr[j];//定义一个空变量存值便于下面位置j和位置j+1值的交换
					arr[j] =  arr[j+1];
					arr[j+1] = temp;//再将第一步赋值给temp 的位置j的值赋值给j+1
				}
			}
			
		}
		
	}

}

2.选择排序


import java.util.Arrays;

//选择排序
public class Deom02 {

	public static void main(String[] args) {
		int[] arr = new int[] {0,45,6,12,3};
		selectSort(arr);
		System.out.println(Arrays.toString(arr));
		
	}
	public static void selectSort(int[] arr) {
		for(int i=0;i<arr.length-1;i++) {
			int max = 0;
			for(int j = 1;j < arr.length - i;j++) {
				if(arr[j] > arr[max]) {
					max = j;//将最大值存在max这个位置
				}
				
			}
			//交换位置
			int temp = arr[max];
			arr[max] = arr[arr.length-1-i];
			arr[arr.length-1-i] = temp;
		}
	}

}

类和对象

:是一组相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性特征和行为来描述该类事物。

通俗一点来说,就是人们常说的概念,很抽象的,不真实存在的,称之为类。

对象:是一类事物的具体体现,对象是类的一个实例,具备该类事物的属性和行为。

通俗来说,对象是真实存在的,它是具体的。

举例:人类 --->是一个类

          名字,身份证--->属性

          吃饭,睡觉,喝水 --->行为

          一个单独真实存在的人--->对象--->是人类的一个实例,应该具备人类的属性和行为

类的定义

就是定义类的成员,包括成员变量和成员方法。

成员变量:与之前定义变量的方式是一样的,但需定义在类中,方法外。

成员方法:与之前定义变量的方式是一样的,但需把public static 修饰词中的static去掉之后,再做方法。

这里需要注意的是,成员变量的默认值

类的使用

1.创建类的对象-->主方法里创建

2.使用对象访问类中的成员(调用成员变量,成员方法)

代码说明


/*计算圆的周长,面积
* 创建一个Circle类,并使用两个方法分别计算它的周长和面积*/

public class Demo01 {
    public static void main(String[] args){
        //创建类的对象
        Circle c = new Circle();
        //调用成员变量
        c.r = 3.0;
        //调用成员方法
       c.area(c.r);
       c.perimeter(c.r);

    }

}



//这里开始就要新创建一个class放我们写的Circle类

// 实体类

public class Circle {
    //定义成员变量
    double r ;
    double pi =3.14;

    //定义成员方法
    public void area(double r){
        double s = pi*r*r;
        System.out.println("s="+s);
    }
    public void perimeter(double r){
        double c = 2*pi*r;
        System.out.println("c="+c);
    }

}
public class Deom02 {
    public static void main (String[] args){
        //创建类的对象
        Student stu = new Student();
        //调用成员变量
        stu.name = "小红";
        stu.sex = "女";
        stu.age = 18;
        stu.book = "白夜行";

        //调用成员方法
        stu.m1(stu.name,stu.sex,stu.age,stu.book);
    }
}

// 实体类
public class Student {
    // 定义成员变量
    String name;
    String  sex;
    int age;
    String book;
    

    //定义成员方法
    public void m1(String name, String sex,int age,String book){
        System.out.println(name+sex+age+"岁"+book);
    }
}

对象内存图

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

1.在类中声明的位置不同

   成员变量:类中,方法外

   局部变量:方法中

2.初始化的区别

   成员变量:可以不用初始化,因为有默认初始值

   局部变量:使用前必须初始化

3.个数区别

   成员变量:由对象决定

   局部变量:由声明个数决定,声明多少个局部变量就有多少个

4.在JVM内存中的区别

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

   局部变量:存在方法栈里,随着方法的调用而存在,随着方法的调用而消失

 图示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值