类和对象1

Java中通过new来实例化对象

this的用法

this.代表当前对象的引用

在方法内局部变量优先使用,值赋值给了形参而没有赋值到类中的对象,所以打印出来类的对象的值是0.

如果不加this那么形参与对象相同时,对象的值就为0

this只能在方法中使用,在static中不能用this

对于一个类的成员变量。在没有初始化之前,每个成员变量都有一个默认值。

对于引用类型来说是null 其他的简单类型是0值。Boolean是false。

对象的构造以及初始化

什么是构造方法

首先它是一个方法:返回值 方法 参数列表(){}

特性

没有返回值

构造方法不一样没有返回值且方法名和类名一样的

创建对象由编译器自动调用,并且在对象的生命周期内只调用一次 

构建方法可以重载,

只要存在任何一种构造方法,编译器都不会在提供不带参数的构造方法

如果没写会默认存在一个

构造方法可以重载

调用当前类中其他的构造方法,调用的是带有三个参数的构造方法

为什么new了就可以赋值

1.检测对象对应的类是否加载了,如果没有加载则加载。(双星委派模型)

2.为对象分配空间内存。

3.处理并发安全问题(比如:多个线程同时申请对象,JVM要保证给对象分配的空间不冲突)

4.初始化分配的空间

5.设置对象头信息

6.调用构造方法,给对象的各个成员赋值

封装

面向对象语言的三个特性:封装,多态,继承。

封装:将数据和操作数据进行有机结合,隐藏对象的属性和实现细节,仅对外提供接口来和对象进行交互。

使用private进行封装变量,只能在类里面使用其他。在类外无法使用,如果使用则需要提供相应的 方法,来间接修改

被public修饰的在哪里都可以访问到。

访问修饰限定符:private public protected受保护的

color这个成员就是默认权限,默认代表的权限是包访问权限,

在同一个包地下可以访问到

package声明包的路径

什么是包?简单来说就是一个文件夹

包名全是小写,域名的逆置写法

如果一个成员变量被static修饰以后,这个成员变量就不属于对象了,去了方法区

静态的成员变量不在对象当中用类名.不需要对象都可以访问

静态成员变量特性

1.是类的属性不属于对象,所以对象共享的,不存在某个对象的空间中。不能修饰局部变量

2.既可以通过对象访问,也可以通过类名访问,

3.类变量存储在方法区当中。

4.生命周期伴随类的一生。

静态的方法不需要对象的调用,在静态方法直接调用一个需要对象的,肯定是不行的。

特性:1.不属于某个具体的对象,是类方法。

           2.可以通过对象调用,也可以通过类名,静态方法名。

           3.不能在静态方法中方法访问任何非静态变量

代码块

静态代码块>构造代码块        >实例代码块 静态只执行一次。类只会加载一次

对象的打印

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值