再谈类与对象

博主之前有对类和对象进行过一次总结,感兴趣的可以看java的类和对象-CSDN博客

Generate快捷键和构造方法

   1.构造方法

       1.1构造方法的概念和用处

狗类相当与对狗的name,age等进行分开的赋值,而people;类运用构造方法people,进行对对象的统一的赋值,从而节省篇幅,提高效率。(构造方法的名字必须与类名相同)。

       1.2构造方法的赋值

当没有对对象赋值时,编译器会默认给定赋值,前提是没有构造方法。若该类前面写了构造方法,

编译器则会认为有了赋值的地方,不会给默认赋值。

此时未对people3的age进行赋值,但是仍旧打印出了0.

默认值列表

       1.3含有多个构造方法的情况

此时写出了两个构造方法,一个含参数,一个不含参数。

构造方法在一个类中可以有多个,编译器会选择其中合适的来用,如date对象没有进行赋值,则会使用第一张图的构造方法,应用第一个构造方法的()中无参数,date2同理,会使用第二个构造方法。但没有写构造方法时,编译器会自动给一个不带参数的构造方法。但如果写了构造方法,编译器则不会给。如写了一个带参数的构造方法,但在对date对象赋值时没有写参数,就会报错,因为写了构造方法,编译器已经没有提供那个不带参数的构造方法。

在一个构造方法中可以引用另一个构造方法,如图,在Date()中引用Date(含参数)。

意思就是Date()中执行this(2008,8,8)就会跳到Date(含参数)所以结果是先显示“执行了带有三个参数的构造方法”后显示“执行了不带参数的构造方法”但二者之间不能形成环。

2.Generate快捷键

Alt+insert为generate的快捷键,可快速将目标类的构造方法写出。

3.Generate中的getter和setter

generate中的getter和setter分别是写出当前类的相关项。Setter可认为是对构造方法统一赋值的拆解,而getter则是有返回值的赋值,可直接写在System.out.println中如System.out.println(people2.getAge())。该前提是先前已经对people2的age赋过值或构造方法中是编译器默认的,没有参数,否则报错。

this关键字

this除了能在构造方法中用,还可以在成员方法中引用其他的成员方法。

static关键字

在多个对象含有相同值时,需要重负写相同值,会降低效率。这时就可以static修饰。

被static修饰后,赋值之后该变量属于每个对象,即属于类但通过对象可以引用,不会报错,只警告。

这里定义了people1和peop2两个对象(age已经被static修饰)。虽然这里只对peop2进行赋值了11,但结果是people1和people2都打印出了11.原因是age被static修饰之后,age这个项就属于类了,可以认为这里虽然只对类下面的一个对象进行赋值,但改变的这个类。people1和people2都在people下,所以打印的都是11.

在静态方法中不能使用非静态的成员。因为静态是属于类的,不需要对象。

代码块

代码块{}中的一些代码,在不同的代码块同时存在时,静态代码块总是先被执行,而且在执行实例代码块和静态代码块时,会先将代码块中需要打印的字符打印出,再打印数值。

toString方法

Alt+insert中的toString可快速遍历对象的所以数据,在sout中输入对象名就可以打印出对象的信息。

此处再谈类和对象到此结束。感谢观看,希望能给各位带来一些有用的东西。如果觉得博主写的还可以,不妨点个免费的赞!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值