黑马程序员_java面向对象_封装

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

面向过程:强调的是过程(动作)

面向对象:强调的是对象(实体)

1.1面向对象:将功能封装进对象,强调具备了功能的对象。

特点:

就是一种常见的思想,符合人们的思考习惯!

面向对象的出现,将复杂的问题简单化

面向对象的出现,将曾经在过程中的执行者,变成了对象中的指挥者
特征:

封装(encapsulation)
继承(inheritance)
多态(polymorphism)

1.2 java语言对现实生活中的事物进行描述。通过类的形式来体现的。

对象:其实就是该类事物实实在在存在的个体。

类:事物描述。

对象:该类事物的实例。使用new来创建。

代码:

class Car {
	String name;
	String color;
	void run() {
		System.out.println("CarName:" + name + "\tCarColor:" + color);
	}
}
class  CarDemo {
	public static void main(String[] args) {
//		在计算机中创建一个car的实例。
		Car c = new Car();
		c.color = "red";
		c.name = "BMW";
		c.run();
	}
}

1.3 成员变量和局部变量的区别:

a.成员变量定义在类中,整个类中都可以访问。

局部变量定义在函数,语句,局部代码块中,只在所属的区域有效。

b.成员变量存在于堆内存的对象中。

局部变量存在于栈内存的方法中。

c.成员变量随着对象的创建而存在,随着对象的消失而消失。

局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。

d.成员变量都有默认初始化值。

局部变量没有默认初始化值。不能被publicprivatestatic修饰。

类类型参数:

代码:

class Car {
	int num;
	String color;
	void run() {
		System.out.println(num + "\tCarColor:" + color);
	}
}
class  CarDemo {
	public static void main(String[] args) {
		
		Car c1 = new Car();
		show(c1);
		c1.run();
		Car c2 = new Car();
		show(c2);
		c2.run();
	}
	public static void show (Car c) {
		c.color = "blue";
		c.num = 4;
	}
}
1.4 匿名对象

匿名对象:没有名字的对象,其实就是定义对象的简写形式。

当对对象的方法只调用一次时,可以用简写成匿名,如果对一个对象进行多个成员调用,必须给这个对象起个名字。

匿名对象可以作为实际参数进行传递。

如:new Car().run();show(new Car());

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

将变化隔离。
便于使用。
提高重用性。
提高安全性。

封装原则:

将不需要对外提供的内容都隐藏起来。
     
把属性都隐藏,提供公共方法对其访问。

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

注意:私有仅仅是封装的一种体现而已

将变量私有化以后,类以外即使建立了对象也不能直接访问。

代码示例:

package cn.itcast.duixiang;

public class PersonTest {

	public static void main(String[] args) {

		Person p = new Person();
//		p.age = - 20;
		p.setAge(-20);
		p.speak();
	}
}

class Person {
	private int age = 0;	//私有化,其他类无法访问
	int a = 0;
	public void setAge(int a) {
		if( a>0 && a<100 ) {
			this.age = a;
		} else {
			System.out.println("age不符合实际");
		}
	}
	void speak() {
		System.out.println("age:" + age);
	}
}





------- android培训java培训、期待与您交流! ----------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值