黑马程序员__java(5)__面向对象

2014-11-24 02:25:53 · 作者: · 浏览: 0

◆面向对象:三个特征:封装,继承,多态。

◆类就是:对现实生活中事物的描述。

◆对象:就是这类事物,实实在在存在个体。

◆成员变量和局部变量的作用范围:↓↓

⒈成员变量作用于整个类中。

⒉局部变量变量作用于函数中,或者语句中。

◆在内存中的位置:

成员变量:在堆内存中,因为对象的存在,才在内存中存在。

局部变量:存在栈内存中。

列子:↓

package com.java.duixiang;

public class carDemo1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	car c =	new car(); //c 代表类型变量 记录 car类 。
	c.color =红色;   //对象.对象成员 改变  成员的属性 重新赋值 
	c.run();  //调用 运行方法 

	}

}


class car
{
	String color =黑色;
	int num =4;
	
	
	void run()  //运行行为
	{
		System.out.print(color+num);
	}
}

◆封装:指的是隐藏对象的属性和实现细节、仅对外提供公共的访问方式

◆封装的好处:⒈将变化隔离

⒉便于使用

3.提高重用性

⒋提高安全性

◆封装的原则:⒈将不需要对外提供的内容都隐藏起来。

⒉把属性都隐藏、提供公共访问对其访问

◆private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。私有只在本类中有效。

◆构造函数:

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

构造函数的小细节:

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

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

◆构造函数和一般函数的区别:

运行上的区别:

⒈ 构造函数是在对象一建立就运行。给对象初始化。

⒉ 一般函数是对象调用才执行,给是对象添加对象具备的功能。

⒊ 一个对象建立,构造函数只运行一次。

⒋ 而一般方法可以被该对象调用多次。

◆构造代码块的作用:⒈给对象进行初始化。。

⒉对象一建立就运行,而且优先于构造函数执行。

◆构造代码块和构造函数的区别:

⒈ 造代码块是给所有对象进行统一初始化

⒉ 而构造函数是给对应的对象初始化。

this:就代表本类的对象

this代表它所在函数所属对象的引用

简单说:哪个对象在调用this所在的函数,this就代表哪个对象。

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

但凡本类功能内部使用了了本类对象,都用this表示。

◆列子:↓


package com.java.duixiang; 

public class thisDemo {
	
	//this 表示 哪个 变量 调用 所在的函数 就指向 哪个变量 

	public static void main(String[] args) 
	{

		Person p1 = new Person(20);//定义P1变量 获取person的值并设置年龄
		Person p2 = new Person(25);
		
		


		Person p = new Person(lisi); //修改 姓名
		//Person p1 = new Person(zhangsan);
		p.speak();
		p1.speak(); //输出变量p1的 属性值
		//p.speak();
	}
}
class Person
{
	private String name;
	private int age;
	Person(int age)
	{
		this.age = age;
	}
	Person(String name)
	{
		this.name = name;
	}
	Person(String name,int age)
	{
		this.name = name;
		this.age = age;
	}

	public void speak()
	{
		System.out.println(name=+this.name+...age=+this.age);
		this.show();
	}
	public void show()
	{
		System.out.println(this.name);
	}

	
}








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