黑马程序员_基础知识2

------------------------------------------------android培训java培训期待与您交流!-----------------------------------------------

函数

①函数的定义
函数就是定义在类中的具有特定功能的一段独立小程序也称为方法

②函数的格式

修饰符返回值类型函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return  返回值;
}

③函数的功能

⒈函数可以将功能代码进行封装
⒉便于对该功能进行复用
⒊函数的出现提高了代码的复用性

重载

①重载的概念
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类
型不同即可

②重载的特点
与返回值类型无关,只看参数列表

③重载实例

返回两个整数的和
public int add (int x,int y){return x+y;}
返回三个整数的和
public int add (int x,int y,int z){return x+y+z;}
返回两个小数的和
public double add (double x,double y){return x+y;}

④重载运用场景

当定义的功能相同,但参与运算的内容不同,这时就定义一个函数名称以表示起功能,

方便阅读,通过参数列表的不同来区分多个同名函数

JAVA中栈内存与堆内存

①栈内存
用于存储局部变量,当数据使用完,所占空间会自动释放

②堆内存
数组和对象,通过new 建立的实例都存放在堆内存中
每一个实体都有内存地址值
实体中的变量都有默认初始化值
实体不在被使用,会在不确定的时间内被垃圾回收器回收

③堆内存和栈内存的详细说明

当某一个函数被调用时,这个函数会在栈内存里面申请一片空间,以后在这个函

数内部定义的变量,都会分配到这个函数所申请到的栈空间。当函数运行结束时

,分配给函数的栈空间被收回。在这个函数中被定义的变量也随之被释放和消失

。通过new产生的数组和对象分配在堆内存中。堆内存中分配的内存,由JVM提供

的GC(垃圾回收机制)来管理。在堆内存中产生了一个数组对象后,我们还可以

在栈中定义一个变量,这个栈中变量的取值等于堆中对象的首地址。栈内存中的

变量就成了堆内存中数组或者对象的引用变量。我们以后就可以在程序中直接使

用栈中的这个变量来访问我们在堆中分配的数组或者对象,引用变量相当于数组

或者对象起的一个别名,或者代号。

❹成员变量和局部变量

①成员变量:
⒈定义在类中,在整个类中都可以被访问
⒉随着对象的建立而建立,存在于对象所在的堆内存中
⒊有默认初始化值
②局部变量:
⒈只定义在局部范围内,如:函数内,语句内等
⒉存在于栈内存中
⒊作用的范围结束,变量空间会自动释放
⒋没有默认初始化值

构造函数

①构造函数的作用
用于给对象进行初始化

②构造函数注意事项

⒈当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。

⒉当在类中自定义了构造函数后,默认的构造函数就没有了

③构造函数与一般函数的区别

⒈构造函数是在对象一建立就运行,给对象初始化;一般方法是对象调用才执行

⒉一个对象建立,构造函数只运行一次;而一般方法可以被该对象调用多次

④构造函数使用场景

当需要对类里面的属性进行初始化,那么可以将这些内容定义在构造函数中

❻this关键字

①this的作用
this 代本类对象的引用

②this的应用

当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象

this语句

用于构造函数之间进行互相调用

❻static关键字

①static的特点
⒈随着类的加载而加载,随着类的消失而消失,它的生命周期最长

⒉优先于的对象存在

⒊被所有对象所共享

⒋直接被类名所调用


❼类的初始化顺序

①静态变量‐>静态初始化块‐>变量‐>变量初始化块‐>构造器

class Parent
{
	public static String par_staticFiled="父类-静态变量";
	public String par_filed="父类-变量";
	static 
	{
		System.out.println(par_staticFiled);
		System.out.println("父类-静态初始化块");
	}
	{
		System.out.println(par_filed);
		System.out.println("父类-初始化块");
	}
	public Parent()
	{
		System.out.println("父类-构造器");
	}

②继承的时候

1.父类-静态变量‐>父类-静态初始化块‐>子类_静态变量‐>子类_静态初始化块(先加载子类和父类的静态的)

2.‐>父类-变量‐>父类-初始化块‐>父类-构造器‐>子类_变量‐>子类_初始化块‐>子类_构造器(再加载非静态的)

public class Child extends Parent
{
	public static String staticFiled="子类_静态变量";
	public String filed="子类_变量";
	static 
	{
		System.out.println(staticFiled);
		System.out.println("子类_静态初始化块");
	}
	{
		System.out.println(filed);
		System.out.println("子类_初始化块");
	}
	public Child()
	{
		System.out.println("子类_构造器");
	}
	public static void main(String[] args)
	{
		new Child();
	}
}

-----------------------------------------android培训java培训、java学习型技术博客、期待与您交流! --------------------------


详情请查看:http://edu.csdn.net/heima






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值