equals

一*********

重写equals tostring方法内容(比较两个值 )

类名 引用 = new 类名();

new关键字是在创建一个实例。实例是内存中一块保存数据的空间。

类名 引用 ; 引用是一个指向实例的引用。

多个引用指向一个对象

类型 对象名称 = new class类型();

new关键字的实例化的过程就是在内存中开辟空间的过程。

创建一个学员对象

Student s1 = new Student();

再创建一个

Student s2 = new Student();

s1和s2就是变量,是Student这个class类型的变量,也叫Student类的两个对象。

同样比较s1 s2 

是因为String重写了equals方法,所以对比学生 也可以重写 转换为学号的比较

二------------------------------- 构造方法 成员方法

成员方法:体现对象的行为  


构造方法:  使用构造方法给属性赋值 (在参数过多 类型过多的情况下不建议使用)


1.new关键字后的Teacher();
2.一个类中一定有构造方法 最少一个;如果没有程序自己创建一个空构造方法 
3.构造方法的特征 修饰符为public private;没有返回值  方法名称和类名一模一样


4.构造方法作用是用来创建对象。分内存,给属性赋初值

5.成员方法和构造方法的调用方式不一样。  成员方法为对象.方法   构造方法为 new 构造方法

6.如果创建了带参数的构造方法,程序不再自动去创建构造方法 必须手工去创建一个无参的构造方法
 

三------------------------------- 可变长参数 

print();//传递0个以上的参数
public static void print(String... param){//可变长参数
}
ublic static void print(int i,String... param){//可变长参数只能有一个 而且只能在最后
}

public static void printinfo(String[]  param2){//可变长参数
}
public static void printInfo(String param2){//非可变长参数
}

四------------------------------- This关键字

名称和属性一致

this.teacherName = teacherName

this.teacherName代表当前对象的属性(成员变量), 

this关键字是一个在实例(对象)内部的引用。
this关键字是每个实例(对象)内部都有一个。
this关镇字是一个指向实例(对象)本身的引用。

this.teacher();
当前的对象的方法 (成员方法)

this(); //代表当前对象的无参构造方法 但是只能写到方法中的第一行;
this(param);// 代表当前对象的有参构造方法 但是只能写到方法中的第一行

 public static void main(String[] args) {
        Teacher t = new Teacher();
        System.out.println();
    }

}
 

/*教师类,
 this关键字为当前对象的引用,也是指向当前的对象
 1.this.teacherName代表了当前对象的属性(成员变量)
 2.this.teach()代表了当前对象的方法(成员方法)
 3.this()代表了当前对象的无参数构造方法,但是只能写到方法中的第一行
 4.this(param)代表了当前对象的有参数构造方法,但是只能写到方法中的第一行

 */
public class Teacher {
    //成员变量-属性
    String teacherNo;
    String teacherName = "zs";//成员变量

    //4.如果创建了带参数的构造方法,程序不再自动去创建无参数的构造方法,必须手工去创建一个无参数的构造方法
    public Teacher(){
        //this("王五");//this(param)代表了当前对象的有参数构造方法,但是只能写到方法中的第一行
        System.out.println("这个为当前对象的无参数的构造方法");

    }

    //使用构造方法给属性赋值
    public Teacher(String teacherName){
        //this();//3.this()代表了当前对象的无参数构造方法,但是只能写到方法中的第一行
        System.out.println("这个为当前对象的有参数的构造方法");
        this.teacherName = teacherName;//this.teacherName代表了当前对象的属性(成员变量)
    }
    public Teacher(int i){

    }


    //方法-行为
    public void eat(){
        String teacherName = "ls";//局部变量,优先级高于成员变量
        System.out.println("teacherName=" + teacherName);
        System.out.println("this.teacherName=" + this.teacherName );
        System.out.println("吃饭");

    }
    public void teach(){
        System.out.println("教学");
        this.eat();//this.eat()代表了当前对象的方法(成员方法)
    }


    //写测试程序
    public static void main(String[] args) {
        //使用构造方法给属性赋值,一般不推荐参数过多,参数的类型过多使用构造方法赋值
        Teacher teacher = new Teacher();
        System.out.println("teacher.teacherName=" + teacher.teacherName);
/*
        //使用对象.属性给属性赋值
        teacher.teacherNo = "t001";*/
        //teacher.eat();
        //teacher.teach();





    }




}

五------------------------------- 类的方法重载(overload)


1.方法重载(overload)定义:
对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候就构成方法重载
2.总结区别:
1和2属于参数的类型不一样1,2和3属于参数的个数不一样3和4参数的顺序不一样
4和5不是 不满足条件
3 如何调用.根据参数不同
4.没计方法的重载的好处,比较方便记忆方法
5.学习过的方法的重载Arrays.sort() Stringindex0fsubstring()

6 构造方法可以重载

方法重载特点:
在同一个方法名相同
参数列表不同(参数的类型不同,个数不同个,顺序不同)
和返回值无关
构造方法有参无参就是方法重载

4和5  重载与返回值无关

方法重载好处
减少了方法名称的数量调用方法更加简洁明了
使整个类的结构显得清晰明了

使用package关键字为类打包
package的命名规则
Java的包名都有小写单词组成
一般公司命名为“com.公司名.项目名.模块名....”。
package必须出现在类的第一句话中
java.lang包是不需要导包的 可以直接使用 System类在java.lang包下

导入包直接导入import static java.lang.Math.*;

然后就可以直接输出属性和方法 但是不推荐静态导入用法 因为可读性差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值