对象和类总结

一、什么是对象?什么是类?

在开发过程中,其实是分为两个阶段的,一个是设计阶段,一个是实现阶段。

在设计阶段是我们通过场景,带入用例去分析,在这个时候这些用例都是以对象的方式出现的。然后在通过归纳发现具有相同属性和行为的对象,这个归纳是人脑的一种抽取,我们得到类的概念。

在实现过程中,代码是先定义类,然后通过类产生对象。把类看成是对象“模版”,先定义好模版,然后通过模版进行复制,产生无数个对象。在具体使用的时候,一定是用对象而不是用类。

类与对象之间的关系一句话:类是对象的模板,对象是类的实例。

二、类的实例化

(1) 定义类

        声明一个类就是创建一个新的数据类型,而类在 Java 中属于引用类型, Java 使用关键字 class 来声明类;

        示例:

public class Demo {
    public int age;//成员属性 实例变量
    public String name;
    public String sex;
    public void eat() {//成员方法
        System.out.println("吃饭!");
    }
    public void sleep() {
        System.out.println("睡觉!");
    }
}

(2) 类的实例化

        用类类型创建对象的过程,称为类的实例化;

        一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量;

        示例:

public class Demo {
public int age;//成员属性 实例变量
    public String name;
    public String sex;
    public void eat() {//成员方法
       System.out.println("吃饭!");  
   }
    public void sleep() {
       System.out.println("睡觉!");  
   }
}
public class Main{
 public static void main(String[] args) {
        Person person = new Person();//通过new实例化对象  person-->引用变量
        person.eat();//成员方法调用需要通过对象的引用调用  访问-->引用.方法
        person.sleep();
        //产生对象     实例化对象
        Person person2 = new Person();
        Person person3 = new Person();
 }
}

三、成员变量和局部变量

1. 作用域不同

        局部变量的作用域:局部变量在方法的内部;

        成员变量的作用域:成员变量在类的内部,方法的外部,作用在整个类;两类变量同名时,局部变量具有更高的优先级

2.初始值不同

        局部变量需要初始化;成员变量Java中会有一个默认值,可以不初始化;

3.存储位置不同:

        局部变量在栈上;成员变量在堆上。

四、访问修饰符

        Java中四种权限修饰符:public(公共的)、protected(受保护的)、default(默认的(也可以不写))、private(私有的);

 

五、this关键字

如果局部变量和 成员变量 产生命名冲突 用this指明当前对象
构造函数重载,在一个构造函数中用this(形参)调用其他的构造函数。举例如下方代码第11行。
        1、构造函数不能用this()相互调用。
        2、this()调用构造函数不能在成员函数中调用
        3、当前构造函数 不能通过this 调用多个构造函数。
        4、this()调用必须位于当前构造函数有效代码第一行。

public class Demo {
    //属性—>实例变量/成员变量
    String name;
    double age;

    // 构造函数 初始化 成员变量
    public Demo(String name1, double age) {
        name = name1;
        this.age = age;
    }

    public Demo() {
        this("sz", 19);
    }
}

六、static关键字

1.修饰属性

        静态成员变量(类变量)访问:类名.属性(建议);

        Java静态属性和类相关, 和具体的实例无关,不需要实例化对象;

        静态成员变量,不存在与对象里面,在方法区;

 2.修饰方法

        在任何方法上应用 static 关键字,此方法称为静态方法;

        静态方法属于类,而不属于类的对象,无需创建类的实例;

        静态方法可以访问静态数据成员,并可以更改静态数据成员的值;

        在普通成员方法中不可以定义一个静态成员变量,如果在方法的内部,是一个局部变量,作用域在方法的内部,而被static修饰又是全局可见的,二者相互矛盾;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值