您的位置:首页 > 编程语言 > Java开发

自学Java系列 笔记2 面向对象2

2015-09-01 22:20 429 查看
方法的重载

方法(函数)

方法的重载

构造方法的重载



注意:形参发生改变,对实参没有影响



函数的重载

§ 在同一个类中可以定义多个同名方法—方法名重载(overload)

publicclass PrintStream{

publicvoid print(int i) {……}

publicvoid print(float f) {……}

publicvoid print(String s) {……}

}

§ 重载方法的参数列表必须不同

§ 重载方法的返回值类型可以相同,也可以不同

§ 调用时根据方法的参数类型来区别。

print(3);print(1.2f);print(“hello!”);



this 关键字

this 关键字 :this
是对“调用当前方法的那个-当前对象”对象的引用


当前对象:当前方法所在的对象。

This 的用途:指代的是当前对象

1.在一般的方法中可以通过this 来引用当前对象的成员(方法、属性)

2.通过this
()调用重载的构造器。需要注意的是,通过此种方法调用重载的构造器的代码必须放在当前构造器的第一行。例如:


publicPerson(String
n, inta, String
s, String
m){

this(n,a,s);

major=m;

}

是正确的、

publicPerson(String
n, inta, String
s, String
m){

major=m;

this(n,a,s);

}

是错误的、



函数的参数传递(重要)

一、基本数据类型的参数传递

package com.atguigu.app;



public class PassValue {

public static voidmain(String [] args){

int x =5;

change(x);

System.out.println(x);

}



public static void change(inty){

y = 3;

}

} //x的值为5



对应的内存分析:

二、引用数据类型的参数传递(两种情况)



第一种情况:

package com.atguigu.app;



public class PassRef {

int x;

public static voidmain(String [] args){

PassRef obj = newPassRef();

obj.x = 5;

change(obj);

System.out.println(obj.x);

}



public static voidchange(PassRef obj){

obj.x = 3;

}

} //x的值是3

对应的内存分析

第二种情况:(使用new一个新的对象)

packagecom.atguigu.app;



publicclass PassRef1 {



int x;

public static void main(String [] args){

PassRef obj = new PassRef();

obj.x = 5;

change(obj);

System.out.println(obj.x);

}



public static void change(PassRef obj){

obj = new PassRef();

obj.x = 3;

}



} //x的值是5

对应的内存分析:









软件包

包帮助管理大型软件系统:将语义近似的类组织到包中。

包可以包含类和子包。

package语句

package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。它的格式为:

package <顶层包名>[.<子包名>]*;

举例:pack\Test.java


packagep1;
//指定类Test属于包p1


public class Test{

public void display(){


System.out.println("in method display()");


}

}

包对应于文件系统的目录,package语句中,用‘.’
来指明包(目录)的层次;

包通常用小写单词,类名首字母通常大写

import语句

为使用定义在不同包中的Java类,需用import语句来引入所需要的类。Import语句告诉编译器到哪里去寻找类。

语法格式:

import 包名[.子包名…].
<类名|*>


应用举例:

import p1.Test;
//import p1.*;表示引入p1包中的所有类


public class TestPackage{

public static void main(String args[]){

Test t = new Test();
//Test类在p1包中定义


t.display();

}

}



JDK中主要的包介绍

1. java.lang----包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。

2. java.net----包含执行与网络相关的操作的类。

3. java.io----包含能提供多种输入/输出功能的类。

4. java.util----包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: