introduction to objects

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1、关于接入控制的理解</span>

     在java提供的类库中(jar包)每个开发者都可以引用,利用里面提供的相关功能来进行开发,但是对于开发者不需要接触的方法的实现则需要进行控制接入,这样保证了方法的安全性,相当于jar中的class只对外提供方法接口,这样便于library提供者的维护工作。当然在最普通的java程序中是利用提供的字段来进行这方面的接入控制的。字段如下:

private:私有字段,表示除了你自己(只有在class内部)别人无法使用该变量和方法;

protected:该字段中的变量和方法只有子类可以访问和调用;

public:该字段的变量和方法对于任何人(任何的类class)都是可用的;

default:在没有任何指定类别的类、变量和方法中,java编译器会自动加上此字段,表示该内容只有在同一个包中被引用,在其它包中不能访问(相当于private字段),而在同一个包中相当于public字段。


2、关于java中的多态

一般情况下,多态的理解为一种特征多种状态,对于多态的实现一种是重写还有一种是重载。在java中当对一个object发送一个请求(message)时,为了方便不需要修改自己的消息状态,而是利用java的多态把这种消息请求交给编译器来进行。举个例子:对于一个图形类(自己写的类而不是java的图形界面编程哦),每一种图形都有draw()方法,那么我们在调用每个图形的方法时可能需要不同的message,例如调用三角形对象中的方法

triangle.draw()
而圆形的画图方法则是
circle.draw()
这样是不是感觉很重复,很麻烦,这个时候我们可以用到java中的多态,很好的实现方法。首先考虑这些所有的图形都是一个大类,这个类里面都有画图这个动作。就像所有的动物都有鼻子和眼睛一样。那么我们的代码就可以这样写,
<pre name="code" class="java">interface Shape{
	public void draw();
}
class Circle implements Shape{

	@Override
	public void draw() {
		// TODO Auto-generated method stub
		System.out.println("this is circle");
	}
	
}

class Square implements Shape{

	@Override
	public void draw() {
		// TODO Auto-generated method stub
		System.out.println("this is square");
	}
	
}

class Triangle implements Shape{

	@Override
	public void draw() {
		// TODO Auto-generated method stub
		System.out.println("this is triangle");
	}
	
	public void delete(){
		System.out.println("this shape of triangle has been delete");
	}
	
}
public class TestPolymorphism {
	static void doSomeThing(Shape shape ){
		shape.draw();
	}
	public static void main(String[] args) {
		Shape shape = new Circle();
		Shape shape2 = new Square();
		doSomeThing(shape);
		doSomeThing(shape2);
		//Shape shape3 = new Triangle();
		
	}

}

// 大家看看所有的图形都实现了Shape这个接口,在调用的时候直接利用shape来接受调用,在程序运行时才知道具体要执行那个具体类中的方法,这种成为late binding。这种就是多态的具体体现哦!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值