类和对象的详解1

类的定义方式及对象初始化

类是对对象的描述

对象是类的实例化

类:

一个文件里可以有多个类,但只有一个类能用public修饰;一般一个文件一个类;(main方法一般定义在public的类中,因为Eclipse默认在public类中找main方法),同级夏类名不能重复

类名采用大驼峰命名

要想修改类名需要去修改文件名(如果文件中只有一个类那么修改文件名时也会修改类名)

对象:

Dog dog = new Dog();

通过new来实例化对象(对象在堆上,dog在栈上,dog中存放的是对象的地址),实例化的时候会在堆上给对象创建空间,属性被存进去,方法存的地址后续补充

通过对象的引用去访问成员属性和方法

注意创建对象后,系统会进行三步:

1检测该对象的类是否加载;

2给成员变量分配空间,赋默认值注意此处是默认值,在定义的时候赋值,需要程序运行才能成功赋值给变量);

3处理多线程安全问题

4调用合适方法对属性赋值(例如构造方法,实例代码块(例如就地复制,set(),get()方法))

知识点补充:数据类型

除去8种基本类型外均为引用类型;

引用类型变量只能同时指向一个对象,不能指向引用变量(因为无法获取栈上的地址)

Dog dog =null;意思是dog对象不指向任何对象;

类中成员变量和成员方法的使用

变量值交换:

需要引用变量才能完成,下面是地址存储解析图

参数需要传入的是地址。

代码实现:

成员变量:

定义在类之内,方法之外,又称属性or字段;

this引用:

当参数名和成员变量名相同时,此时调用的是局部变量(局部变量优先使用),此时要想成功给字段赋值就要this.

this代表当前对象,谁调用函数谁就是这个函数里的this

{原理:成员方法中会默认第一个参数是this,每次调用这个方法,那就系统会默认传入该对象作为参数

}

建议使用this,无论this加不加都没关系,编程习惯

对象初始化问题

默认初始化

成员变量在未初始化是均有默认值(局部变量不初始化那就会报错)

就地初始化

即在定义的时候初始化

注意,要么在定义的时候初始化,要么在函数里初始化。否则会编译异常。

使用构造方法初始化

初始化对象就会用到构造方法,在创建对象的时侯就能完成初始化,构造方法只执行一次

eg:Dog dog = new Dog("阿黄",19);

构造方法不能有返回值,且必须与类名相同

实例化对象时就会自动调用构造方法,当没有写构造方法时系统会自动加载一个空的构造方法,当自己写了构造方法,那么系统就不会再提供空构造方法;在一个构造方法内要想调用其他构造方法则要用:this(填参数,没有则为空),this()必须在第一行,构造函数之间不能相互this()形成闭环

构造方法可以重载

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值