对面向对象的初步认识

java面向对象的特征

1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2、封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
3、继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
4、 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题
注:java中有一个共同的父类,Object类。

java面向对象的一些关键字

1、extends
extends是用来标识两个类的继承关系,当一个类与另一个类有衍生关系时,可以用extends来继承此类,继承后,子类可以调用父类没有被私有化的成员
注:java中只允许单继承,只能有一个父类。

class Fu {<span style="color:#009900;">//定义父类</span>
	String name; 

}

public class Zi extends Fu {<span style="color:#009900;">//继承</span>

	public static void main(String[] args) {
		Zi z = new Zi();
		z.name = "自己";<span style="color:#33cc00;">//调用父类的属性</span>
		System.out.println(z.name);
	}

}
2、abstract
abstract是用来定义一个抽象类的一个关键字,当一个类知道自己应该需要完成什么功能,但是具体完成功能的代码不知如何定义,那么就可以将此方法抽象,由具体实现此类的子类来实现该方法。
注:当一个类中有被abstrac修饰的方法,那么该类也必须被abstract修饰。
abstract类中可以定义不是抽象的方法。
<span style="font-size:18px;"> </span><span style="font-size:24px;">abstract class Abstract_ {

	public abstract void area();<span style="color:#33cc00;">// 定义一个求面积的方法,但不知道求谁的面积所以抽象了,由具体的子类实现</span>
}
class  Proportion  extends Abstract_{

	<span style="color:#33cc00;">//必须复习抽象方法</span>
	public void area() {<span style="color:#33cc00;">//注:权限修饰符必须等于或大于父类</span>
		
		System.out.println("长方形面积为"+12*15);
	}
	
}</span>
3、private
private是用来私有化类中的成员, 当一个类中的成员不需要对本类以外的对象暴露时,可以用private来修饰,被 private修饰的成员只能被本类对象所访问,即便是其子类也不能访问。
<span style="font-size:24px;">class Privates {<span style="color:#33cc00;">// 定义父类</span>
	private String name;<span style="color:#33cc00;">//私有化</span>
	int age ;
}

class sample extends Privates {<span style="color:#33cc00;">// 继承
</span>
	public static void main(String[] args) {
		sample s = new sample();
		s.age=15;
		System.out.println(s.age);
		
		s.name="呵呵";<span style="white-space: pre;">						</span>  <span style="color:#33cc00;">//错误:The field Privates.name is not visible(这一领域Privates.name是不可见的</span>)
		
	}

}</span>
4、interface
interface是用来定义一个接口的,当一个类中的所有方法都是抽象的时候,就可以将此类定义为一个接口,和抽象类不同,接口中的所有成员也必须是抽象的,定义接口可以实现程序的扩展性。
<span style="font-size:24px;">interface  Demo{
	public abstract void area();<span style="color:#33cc00;">//求面积</span>
	public abstract void volume();<span style="color:#33cc00;">//体积</span>
		void perimeter();<span style="color:#33cc00;">//注:不加权限修饰符合抽象修饰符,
		//系统会自动为你添加,而且权限修饰符只能是public</span>
}</span><span style="font-size:18px;">
</span>
5、implements
implements是用来实现一个接口的关键字,当实现了一个接口,那么你就需要复写该接口中所有的抽象方法。
注:java允许实现多个接口
<span style="font-size:24px;">interface  Demo{
	public abstract void area()<span style="color:#33cc00;">;//求面积</span>
	public abstract void volume();<span style="color:#33cc00;">//体积</span>
		void perimeter();<span style="color:#33cc00;">//注:不加权限修饰符和抽象修饰符,系统会自动为你添加,而且权限修饰符只能是public</span>
}

class Rectangular implements Demo{
	
	int length=10;
	int width=5;
	int highly=3;
	@Override
	public void area() {
		System.out.println("面积为"+length*width);
		
	}

	@Override
	public void volume() {
		System.out.println("体积为"+length*width*highly);
		
	}

	@Override
	public void perimeter() {
		System.out.println("周长为"+(length+width+highly)*4);
		
	}
	
}</span>

6、this
this是代表本类对象,代表此时正在调用的对象。
<span style="font-size:24px;">class Demo{
	private String name;
	private int age;
	  public  Demo(String name,int age){
		this.name=name;
		<span style="color:#33cc00;">//this.name代表本类(Demo)中的name,name代表的是形式参数
		//this.name=name;意思是,将形式参数的值付给Demo类中的name</span>
		this.age=age;
	}
	
}</span>
7、Super
super正好与this相反,super代表的是父类对象。
注:当子类继承了父类以后,在初始化子类时就会自动的去掉用父类的构造方法,如果在父类中没有定义构造方法,那么子类会自动调用默认的构造方法,如果在父类中有自定义的构造方法,那么在初始化子类时需要去指定。

<span style="font-size:24px;">class Demo {
	private String name;
	private int age;

	public Demo(String name, int age) {
		this.name = name;
		<span style="color:#33cc00;">// this.name代表本类(Demo)中的name,name代表的是形式参数
		// this.name=name;意思是,将形式参数的值付给Demo类中的name</span>
		this.age = age;
	}

}

class ZiDemo extends Demo {

	public ZiDemo(String name, int age) {
		super(name, age);<span style="color:#009900;">//这句话必须放在第一句,它会先去父类初始化。</span>

	}

}</span>

8、其他关键字
final
关键字可以修饰类、类的成员变量和成员方法,但作用不同

修饰成员变量:称为常量,须给出初始值

修饰成员方法:该方法不能被子类重写

修饰类:类不能被继承



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值