数组排序
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内存中的区别
成员变量:存在堆里,随着对象的创建而存在,随着对象的消失而消失
局部变量:存在方法栈里,随着方法的调用而存在,随着方法的调用而消失
图示