Java基础入门day17

本文介绍了Java中的二分查找算法实现,以及方法重载和构造方法的概念,以Student类为例详细讲解了构造方法的使用。

day17

复习二分查找java

package com.saas;
​
public class BinarySearch {
​
    public static void main(String[] args) {
        int[] nums = {12, 21, 33, 77, 89, 90};
​
        System.out.println(binarySearch(nums, 21));
    }
​
    public static int binarySearch(int[] arrs, int target){
​
        //  刚开始让left为0, right为数组的长度减一
        int left = 0, right = arrs.length - 1;
​
        //  left值小于等于right值的时候,一直循环,否则循环结束,
        while (left <= right){
            int mid = left + (right - left) / 2;            //  去给定一半数据的中间数据
​
            if(arrs[mid] == target){                        //  数字中的中间元素正好是要查找的元素,则直接返回该中间元素的下标
                return mid;
            } else if (arrs[mid] > target){                 //  要查找的元素小于数组的中间元素,则在数组的左半部分查找,让right变成mid -1
                right = mid - 1;
            }else {
                left = mid +1;                              //  要查找的元素大于数组的中间元素,则在数组的右半部分查找,让left变成mid + 1
            }
        }
​
        return -1;                                          //  当left小于等于right不成立时,代表数组里面的所有元素都已经比对完成,没有找到要查找的元素,当前结构还没有返回,则返回-1
    }
}

方法重载

public void m(int a){}

public void m(int b){}

这两个方法不是重载

public void m(int a, int b){}

public void m(int b, int a){}

这两个方法也不够成重载

重载是在同一个类中,多个方法,方法名相同,参数列表不同

参数列表不同包含以下三个点:

  • 参数数据类型不同

  • 参数个数不同

  • 参数的顺序(不同类型参数的顺序)同步

与方法的返回值类型无关

与方法的访问修饰符无关

构造方法

构造方法:是类中的特殊方法,主要用于初始化对象

特点:

  • 名称与类名完全相同,包括大小写

  • 没有返回值类型,必须没有返回值类型,void也不行

  • 创建对象时,触发构造方法的调用,不可以通过句点来手动调用,使用new关键字来调用

  • 一个类中如果没有显式地定义构造方法,Java虚拟机会自动创建一个默认的无参的构造方法

对象的创建过程:

  • 内存中开辟对象空间

  • 为各个属性赋予初始值

  • 执行构造方法中的代码

  • 将对象的地址赋值给变量

package com.saas;
​
public class Student {
​
    String name;
    int age;
    double score;
    boolean sex;
​
    public void Student(){
        System.out.println(name);
        System.out.println(age);
        System.out.println(score);
        System.out.println(sex);
        System.out.println("this is Student constructor.");
    }
}
package com.saas;
​
public class TestStudent {
​
    public static void main(String[] args) {
        Student s = new Student();
​
        s.name = "guangong";
        s.score = 99;
        s.sex = true;
        s.age = 30;
​
        System.out.println(s.name);
        System.out.println(s.sex ? "male" : "female");
        System.out.println(s.age);
        System.out.println(s.score);
​
        System.out.println("==============");
​
        s.Student();
    }
}

构造方法必须没有返回值类型

构造方法一旦加上了返回值类型,那么该方法不再是构造方法,该方法属于实例方法

那么想要调用该实例方法,则必须通过对象.来调用

new关键字调用的构造方法是Java虚拟机默认提供的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值