`
zhuozhuobeauty
  • 浏览: 18049 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

7月7日第三节课总结

    博客分类:
  • java
阅读更多
一、类的方法之构造方法
    构造方法与普通方法的区别
          用途           返回值           方法名
            
构    构造方法主要      不写数据类型     必须是类名
造    用于实例化对象,
方    可同时对对象的                   
法    属性进行初始化。


普    普通方法则主要    要标明数据类型  可以自己命名
通    是设置对象的行
方    为方法


**代码举例:
构造方法
语法格式:
public 类名(数据类型 形参名,...){
//方法体
}
例:
public Student(String n){
name = n;
}
普通方法
        语法格式
                public 返回值数据类型 方法名(数据类型 形参名,...){
//方法体
}
例:
public void study(){
System.out.println(name+"学习中,学分是"+score);//输出信息
}
**为什么我们可以做类似于
     Student stu = new Student()的对象实例化?
注意到加了圆括号的都是方法,属性不行,类也不行,作为类的Student是没有资格加上()的,在此处Student()其实已经是一个方法了,Java默认给类提供一个构造方法,注意是构造方法,并且不带参数,但是若定义了与之完全相同的构造方法,如Student(){//方法体},则默认的被覆盖。
二、方法重载
1.条件   
    方法重载与参数有很大关系。除了方法名字必须完全相同外,所带参数的个数,类型,顺序,至少有一个是不同的。
2.如何调用   
    在调用方法时,系统自动查找与调用的方法参数一致的方法。
3.使用方法重载的情况
    根据定义,使用方法重载的情况必是原有方法不能满足新的对象的使用需求,比如,同是手机,有的可以触屏,有的不可以,有的有键盘,有的没有,有的是智能机,有的不是……
往往是对象的“参数”个数,类型等等发生了改变,所有的一切可以还原到生活中,这就是面向对象的编程的优点,易于理解。
三、this关键字
    this关键字的作用目前我所知……只有两种,第一,当参数名与对象的属性名相同时,在对象属性名前加this. 相当于用于标记和区分,this.代表当前,要注意在不同的方法中使用代表什么,举一个例子
   public Student(String name){
     this.name = name;

}
   public Teacher(String name){
     this.name = name;

}
两个this.name分别是Student跟Teacher类的属性
四、值传递
    类似于C语言中的传值~我发现自己好喜欢把java跟C比较。。。举例:stu.setName("李四");直接把"李四"这个字符串传了进去。
    它既可以用于普通方法,又可以用于构造方法
五、引用传递
    类似于C中的传址~在此之前,要先搞懂对于Student stu = new Student();之后,stu中间到底存了些什么
    插入上课时的笔记:
    内存包括栈和堆,定义了Student stu;则在栈中开辟了内存空间存储,用于存储stu,并对她的初始值赋null;用new Student(),则在堆中开辟了一个空间,用来存储这个类中的方法跟属性,其中它的大小取决于类的大小。接着,构造方法会提供类的首地址,将类的首地址赋给了stu,其实stu存的是首地址~so,对stu进行两次Student stu = new Student();赋值,看起来赋的是相同的值,其实是不同的~
    所以,相同类型的变量如stu1,stu2,stu3。。。。。。互相赋值,传递的是变量所存的地址,举例:
stu = new Student();
stu.setName("金");


Student stu2 = new Student();
stu2.setName("木");

Student stu3 = new Student("水");

stu3.setName("火");

stu2 = stu;

stu = stu3;

stu3 = stu;
}
输出结果:



分析:
                stu2 = stu;(1)

stu = stu3;(2)

stu3 = stu;(3)

这一段语句,(1)后stu2存的已经是stu的地址了,(2)后stu存的就是stu3的地址了,(3)后stu3是stu的地址,但是
stu又已经是stu3原始的,所以,最终结果如上。
六、一些要注意的小点
1.参数名和属性名相同时,会默认使用离方法最近的参数名用this来区分
2.this("aaa")代表调用这个类中的具有一个字符串的参数的方法,如不不含有这个方法就会报错
3.GC:销毁释放内存空间
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics