Java学习笔记9 面向对象之封装3

1.  如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性,除了静态变量,但无论以各类有多少个对象,这些对象共享同一个方法。

 

   a)   逐步分析执行过程:

      public class ParamTest

     {

         public static void main(String args[])

        {

         Person person = new Person();

         System.out.println(person.age);

         person.change(person);

         int age = person.age;

 

         System.out.println(age);

 

         }

     }

     class Person

    {

          int age = 20;

          public void change(Person per)

         {

          per = new Person();

          per.age = 30;

          }

 

          结果:20

                   20

   分析:1.显示的引用类型person所指对象的age变量2.调用person.change方法后为什么age的值还是20呢?因为,在person类型的参数传到change方法中时,person.change方法中,又实例化了一个per引用所指向的对象,此对象已不是前面所述对象,因此per.age变量的改变不影响person.所指对象的age值

  结论:每个对象都具有自己的属性,除了静态变量。

 

2.    关于方法参数传递的总结,对于java中的方法参数传递,无论传递的实参是原生数据类型还是引用类型,都是传值(pass by value),只是传递引用类型时,引用类型本身存储的是对象的地址,因此被调方法执行引用类型的形参,实质任是执行实参所指向的对象。

 

3.    什么类型的引用就能指向什么类型的对象,比如People类型的引用只能指向People类型的对象,而不能指向Student类型的对象,除非被指向的是引用类型的父类。比如:

 

      People people = new People();//正确

      People people = new Student();//错误

 

4.    构造方法(Constructor),构造方法用于完成对象属性的初始化工作

构造方法的特点:

   a)  构造方法的名字必须与类名完全一致(包括大小写)

   b)  构造方法没有返回值,连void也不能出现

   c)  如果在定义一个类的时候,没有为类声明构造方法,那么java编辑器会自动为类添加一个没有参数且方法体为空的构造方法(默认的构造方法)

   d)  如果在定一个类的时候,为类声明了构造方法,那么java编译器就不会在为类添加构造方法了

   e)  不能显式调用类的构造方法,构造方法通常是通过new关键字隐式调用

 

5.    New关键字在生成对象时按顺序完成了三件事

   1)  为对象开辟内存空间

   2)  调用类的构造方法

   3)  将生成的对象的地址返回

 

6.    默认的构造方法,构造方法没有参数且方法体为空

 

7.    使用new来生成对象的时候,后面的小括号()表示构造方法的参数列表,如果构造方法不接受参数,那么小括号的内容为空;如果构造方法接受参数,那么小括号中的实际参数就需要与构造方法定义的形参保持一致(参数数量一致,类型一致,按照顺序逐一赋值)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值