java--对象,类以及引用方法

1.数组排序: 升序
1.选择排序: 每一轮都选择一个最大的, 放在最后面
2.冒泡排序: 每一轮比较相邻两个元素, 小的放前面, 大的放后面
3.插入排序: 将数组分成两部分, 一部分是已经排好的, 另一部分挨个访问, 插入到前一部分合适的地方
2.
面向对象: OOP Object Oriented Programming
一切皆对象, Java操作的基本单位就是对象
类/类型: 所有同种对象共同的特征和行为, 抽象出来成为类
对象: 符合类的实例化个体
3.
class: 类 类型 和int功能一样
使用对象的步骤:
1.必须先有类
class Student {
成员变量 name age
成员方法
}
2.才能创建对象 - main - 方法 - 存在于类中
Student s = new Student();
3.有了对象, 对象包含了成员变量(name和age)和成员方法
使用, 用 . 来调用的
4.
局部变量和成员变量的区别
1.声明位置
局部变量: 方法中
成员变量: 类中
2.初始化
局部变量: 使用前必须初始化
成员变量: 可以初始化, 如果没有初始化, 会有默认初始值
3.个数
局部变量: 声明个数
成员变量: 由对象决定, 有几个对象就有几个成员变量
4.内存中的位置
第一次使用类[创建类的对象]之前, 会先将类进行加载
局部变量: 方法栈中, 方法结束, 局部变量消失
成员变量: 跟对象一起, 在堆中

方法重载:
方法名一样, 参数列表不一样的几个方法
跟返回值类型无关
举例: println print
参数列表不一样的情况: 个数不同\类型不同\顺序不同
(int a)
(double d)
(int a, int b)
(int b, int a) ×
(int a, float b)
(float b, int a)
6.
构造方法/构造器:
目的: 为了给成员变量初始化
特点: 方法名要和类名一致
没有返回值类型
构造方法可以重载
当类中没有定义构造方法时, 编译器会默认添加无参构造方法

this:
表示当前对象 - 这个对象
哪个对象调用方法, 就表示哪个对象
this可以调用自己的成员变量, 当成员变量和临时变量重名时, this不能省
this也可以调用自己的成员方法, this可以省略
this也可以调用自己的构造方法, this(参数), this不能省
只能放在构造方法的第一行
8.
NullPointerException: 空指针异常
产生原因: 调用了null空值得 成员变量 或者 方法
9.
引用类型的数组
使用步骤:
1.给数组初始化
Student[] ss = new Student[5]; // 默认值都是null
2.给数组元素初始化
ss[0] = new Student();
ss[1] = new Student();
10.冒泡排序方法
比较相邻元素,小的放前面,大的放后面

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];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

11.选择排序方法
每一轮找最大值放后面(或者最小的值放前面)

public static void selectSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            int index = 0; // 记录最大值坐标的
            for (int j = 1; j < arr.length - i; j++) {
                if (arr[j] > arr[index]) {
                    index = j;
                }
            }
            // 交换index和length-1-i位置的值
            int temp = arr[index];
            arr[index] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }
    }
}

定义的方法

// 1.定义类
public class Car {
    // 2.定义成员变量
    String color;
    String name;
    double price;
    // 3.定义成员方法
    void run(String user) {
        System.out.println(user + "在开车");
    }
}

创建对象 使用对象的成员变量和成员方法

int a = 1;
// 创建对象 - 引用类型
Student stu = new Student();
// 使用对象的成员变量
stu.age = 21; // 赋值
stu.name = "小明";
// 使用对象的成员方法
    stu.study("java");
    System.out.println(stu.age);
stu.car = new Car();

Student stu1 = new Student();
stu1.name = "小明";
    System.out.println(stu1.age);
    
``
`14.无参构造

```java
// 1.创建Student对象 - 调用无参构造器
Student s = new Student();
// 2.刚创建好的对象, 成员变量是默认初始值
// 3.给成员变量赋值
s.name = "张三";
s.age = 23;
s.car = new Car();
    System.out.println(s.name);
    System.out.println(s.age);
    System.out.println(s.car);

15.有参构造`

Student s2 = new Student("小明", 21, null);
    System.out.println(s2.name);

Student s3 = new Student("鹏鹏", 20, new Car());
    System.out.println(s3.age);
    

16.基本数据类型数组

// 基本数据类型数组
int[] arr = {1, 2, 3, 4};
char[] arr2 = {'h', 'a', 'h', 'a'};
// 默认值0
int[] arr3 = new int[3];
// 引用类型数组
Student[] arr4 = {new Student(), new Student()};
// 默认值 null
Student[] arr5 = new Student[3];
    System.out.println(arr5[0]); // null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值