类和对象来日复习

目录

封装的特性:两个重要的特性——保护性和易用性

构造方法

.equals()方法

this.--->

toString方法




public class newPlan{
    //输出小刘、小王、小张的个人信息:自定义就好
    public static void main(String[] args) {
        Person person1 = new Person();//指示小刘
        Person person2 = new Person();//指示小王
        Person person3 = new Person();//指示小张
        person1.name = "小刘";
        person1.country = "中国";
        person1.sex="男";
        person2.name = "小王";
        person3.name="小张";
        person3.sex="女";
        person2.height=175;
        person3.height=165;
        person1.println();//打印小刘的信息
        person2.println();//打印小王的信息
        person3.println();//打印小张的信息
        System.out.println(person3.sex);//输出:女
        System.out.println(person1);//输出:Person@4554617c


    }
}
class Person<age> { //人类
    String name;//成员变量
   
    String sex;
     String country;
    int height;
    void println() {
        System.out.println("name: " + name + ",性别:"+sex+",country: " + country+",身高"+height);
    }
}
//输出结果:
name: 小刘,性别:男,country: 中国,身高0
name: 小王,性别:null,country: 中国,身高175
name: 小张,性别:女,country: 中国,身高165
女
Person@4554617c

Process finished with exit code 0

static定义的变量在方法区中存储,成员变量被定义在堆中存储。

fina用于定义常量,可以和static一起定义,命名:static final String GOOD_BOY = “好孩子”;


主方法必须是静态的,没有static修饰是不及对象的。

封装的特性:两个重要的特性——保护性和易用性

private封起来就是加了一个保险柜的意思,易用性理解为黑匣子。

用于修饰类内的成员变量,只在类内部可见。

如果外部类需要调用黑匣子内的东西可以采用setter\getter

构造方法

目的是实例化对象:

 1.为对象在堆中分配空间。

​ 2.调用对象的构造方法为对象成员变量赋值。

3.自己不能调用自己构造

关键字new


语法--->

如果类名是Person,我实例化对象new Person(); 名字一致就行。

1个类中至少存在一个构造方法,若没有定义显示,编译器会默认生成一个无参构造。


构造方法的重载-->

构造方法可以重载,构造方法是为了类中的成员变量赋值的,重载只有参数个数不同

public class newPlan{

        public static void main(String[] args) {
            Person person = new Person();
            Person person1 = new Person("小王",18);
            Person person2 = new Person("小王",18,"男");
        }
    }
    class Person {       
        String name;
        int age;
        String  sex;

        public Person() {        //构造方法的重载
            System.out.println("这是一个无参构造");
        }

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
            System.out.println("两个参数的有参构造");
            System.out.println("name:" + name + " age:" + age);
        }

        public Person(String name, int age, String sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
            System.out.println("三个参数的有参构造");
            System.out.println("name:" + name + " age:" + age + " sex:" + sex);
        }
    }

//输出:
这是一个无参构造
两个参数的有参构造
name:小王 age:18
三个参数的有参构造
name:小王 age:18 sex:男

.equals()方法

引用类型比较是否相等都用.equals()方法-->

public class newPlan {
    public static void main(String[] args) {
        String str1 = "11122222";
        String str2 = "11111111";
        String str3 = "11111111";
        int count=1;
        if(str1.equals(str2)){
            count++;
        System.out.println("str1与str2:"+count);
        }
        if (str2.equals(str3)){
            count++;
            System.out.println("str2与str3:"+count);
        }
    }
}
//结果:
str2与str3:2

this.--->

1调用当前对象的成员变量

2调用当前对象的方法

@1:构造方法中调用另一个构造方法,格式为this(参数);

3表示当前对象的引用

public class newPlan{

    public static void main(String[] args) {
        Student student=new Student("小刘",100,"男");  //new给他这里赋值了
        student.show();
    }}
class Student{
    private String name;
    private int age;
    private String sex;

    public Student(String name,int age,String sex){
        /**
         * 发现this.的作用就是跳出"就近匹配原则"
         */
        this.name=name;
        this.age=age;
        this.show();   //this调用了show
        sex=sex;      //形参自己等于自己
        System.out.println("Student类的有参构造");
    }
    public void show(){
        System.out.println("name="+name+",age"+age+",sex"+sex);
    }
}
/**输出:
 name=小刘,age100,sexnull
 Student类的有参构造
 name=小刘,age100,sexnull

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值