类、对象和构造方法

之前说创建对象,创建类,我们只是很笼统的知道如何创建他们,使用他们会产生什么效果。下面来说一下对象和类是什么?
java语言中的对象是对现实生活中对象的模拟,对象有称为实例。
怎么理解呢?在现实生活中每个人都是一个对象,一台电脑是一个对象等等,总的来说一个实体就是一个对象,而在java中对这些现实中的对象只能通过描述来建立对象。
                       很明显java中定义对象与现实对象的对应关系
                              
java中将现实对象的信息称为属性(也叫全局变量),将现实对象中的功能称为方法
java语言中把具有相同属性和方法的-一组对象抽象到一个源文件就形成了
定义类的步骤:
1、类名(标识符命名规则,首字母大写,多个单词第二个字母首字母大写)
2、属性
3、方法
通过new关键字创建对象(实例化对象)
使用“.”运算符访问对象的属性和方法。
对象名.属性=值;(若该属性之前已经赋值,则调用时重新赋值,如果在非静态方法或代码块中使用直接属性名,如果在静态代码块或方法中要对象名.属性)
对象名.方法名();
举例:
public class Student {

//定义属性
String id="001";  //学号
String name="张华"; //学生姓名

//定义写作业方法
public void doHomework() {
System.out.println(this.name + "正在写作业……");
}


public static void main(String[] args) {
Student stu1=new Student();//创建对象
Student stu2=new Student();
stu1.name="zhang";
stu2.doHomework();//调用方法



}

}


敲黑板!!!这里重点说一下this
this代表对当前对象的一个引用。
1、调用属性 this.属性=值;
2、调用方法 this.方法名();
3、调用构造方法 this([参数]);
注意:this在实例方法中通常被省略,除非实例方法中包含与成员变量同名的局部变量时,访问成员变量需要使用this。
对象与类的关系:
类是创建对象的模板,决定对象的属性和方法。也就是说在类中的对象同时具有类中定义的所有属性和方法。
类是对象的一种类型。
类是对象的抽象化;对象是类的具体化。
封装就是将描述一类事物的属性和功能结合起来定义在一个.java源文件中。
封装优点:简化编程、隐藏细节、访问控制
java的三大特点之一面向对象,通过这么讲诉对象的含义,创建对象的方式以及使用方式就能知道在java中以对象为中心,以消息为驱动,即程序=对象+消息(消息指方法的调用:通过向方法传递参数的方式向方法发送消息,并通过返回值从方法中获取信息);而在面向过程语言中以过程为中心,以算法为驱动,即程序=算法+数据。
面向对象中也存在面向过程
想这样一个问题,咱已经学会定义属性了,如果老板要求定义一个类,该类中n个属性,而且给这些属性赋m次不同的值,如果挨个每次赋值不仅代码量大,而且出错率非常高,为了解决这个问题,java中出现了一个方法叫构造方法,下面看下如何定义和使用.
定义:构造方法负者初始化类中的实例变量
访问控制权限 类名([参数]){
方法体
}
注意:1、不包含返回值,不能有static和final修饰
      2、在创建对象时被调用
      3、在类中声明多个构造方法时,若参数个数相同对应参数的数据类型不能相同,要么参数个数不同。
(例如:public Student(String a){

}
public Student(String a,int a){

})
      4、创建类时,若没有显示定义构造方法,则该类会存在一个默认的无参构造方法。
      5、若存在显示构造方法,则默认构造方法则不存在
      6、本类中有多个构造方法,构造方法之间可以使用this调用,this放在构造函数代码有效代码的第一行,(普通方法不能调用构造方法)


有人问了若自己没有定义构造方法,也能创建对象,为什么?是的,在java中自己没有定义构造方法但是jvm自己定义一个默认的无参构造方法,所以当创建对象时实际调用默认无参构造方法。这里等同于定义成员变量不赋初始值,但是jvm会给其一个默认的初始值,若已经赋初始值,则默认的就不存在了,存在也没有意义了呀。
初始化对象方式过程:
1、给对象的实例对象分配内存空间,默认初始化成员变量
2、成员变量声明时初始化
3、初始化块初始化(就是使用{}括起来)
4、构造方法初始化
重载:在同一个类中方法名相同参数列表不同。参数列表包括参数个数和参数类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值