Java面向对象编程

如果说C语言程序设计很有意思的话,那该怎么去形容Java才最贴切呢。从现在起,开始深入研究Java面向对象编程。

最基本——创建一个类(class)

一个class类中需要描述出类的属性和方法,比如说现在有一个问题的对象是一只猫,我们需要把它的种类、名字、体重描述出来,同时它可以吃饭、睡觉、玩耍。这时候,我们就需要创建一个Cat类。这里只是简单描述,所以把属性和方法都设置成了public
创建结果如下

class Cat{
	//属性
	String kind;
	String name;
	double weight;
	//构造器
	public Cat(String kind, String name, double weight) {
		super();
		this.kind = kind;
		this.name = name;
		this.weight = weight;
	}
	//方法
	public void play() {
		System.out.println(this.name+"在玩耍");
	}
	public void eat() {
		System.out.println(this.name+"吃了一斤猫粮");
	}
}

OOP三大特征——封装、继承、多态

一、封装

为什么要实现封装?——保护类的一些属性或方法。
使用关键字private进行修饰后的属性或方法之后,就只允许类自身进行修改和使用,其他类则没有权限。这种情况下可以在类内部构造set和get方法供其他类间接访问。

public class test_class {
	public static void main(String[] args) {
		Cat cat=new Cat();
		//cat.weight=3.6;	//会报错!
		System.out.print(cat.getWeight()+"->");
		cat.setWeight(6.2);
		System.out.println(cat.getWeight());
	}
}
class Cat{
	//私有属性
	private double weight=3.2;

	//get方法获取属性
	public double getWeight() {
		return weight;
	}
	//set方法供修改
	public void setWeight(double weight) {
		this.weight = weight;
	}
	
}
//运行结果:3.2->6.2

如果一个属性或方法前面带有关键字fianl修饰的属性和方法,则代表其已是最终的状态,不允许进行任何修改。

有关类和属性的一些修饰符之后的访问权限说明:
在这里插入图片描述

  1. private 表示私有,只有自己类能访问
  2. default表示没有修饰符修饰,只有同一个包的类能访问
  3. protected表示可以被同一个包的类以及其他包中的子类访问
  4. public表示可以被该项目的所有包中的所有类访问
二、继承

在Java面向对象编程中,类不能实现多继承,但接口(interface)可以,接口先不说。这里使用extend关键字实现继承,但即使是子类也没有直接访问和修改父类属性的权限。这里以上面的Cat类为父类创建一个LettleCat类。

class LettleCat extends Cat{
	
	public void change() {
		this.name="yang1";//非私有可供子类访问
		//this.weigh=6.2;//无权限,会报错
		this.setWeight(6.2); 	//可实现
	}
	
}

在这里,子类可以对父类方法实现重写,super(超)父类可调用父类方法。

public double getWeight() {		//Cat类中getWeight方法的重载
	double a=super.getWeight();	//super调用父类方法
	System.out.println(a);
	return 0;
}
三、多态

人个有志,在Java中类也是如此。子类对父类方法的重写形成了多态的现象。感觉这里没什么好说的,说再多都是花里胡哨,没有一个代码片来的实在。

演示

public class testpolym {
	public static void main(String[] args) {
		aman pro=new programer();
		re_lax(pro);	//传参——程序员类
		aman ac=new Acmer(); 
		re_lax(ac);		//传参——Acmer类
	}
	//用一个方法测试
	static void re_lax(aman per) {
		per.relax();
	}
}
//父类
class aman{
	public void relax() {
		System.out.println("休息一会");
	}
}
//子类——程序员
class programer extends aman{
	public void relax() {
		System.out.println("程序员写了一小段程序");
	}
}
//子类——Acmer
class Acmer extends aman{
	public void relax() {
		System.out.println("Acmer随手ak,无敌是多么寂寞");
	}
}

面向接口编程

前面继承那里提到过,在Java中,类没有多继承,但接口可以多继承,一个类也可以接入多个接口,下面就开始引入接口的探讨。使用interface 声明一个接口,使用implements让一个类连接接口。(这里只是简单说一下接口。。。\很小声)

接口给工程的开发提供了一个模板,接口的引入是的类的创建更加简洁,功能性一目了然。

接口使用时需要注意:接口中写出的只是一个方法的模型,而一个类接入接口时需要将此接口中所有的方法具体实现,同理如果接入多个,则需要一一实现。

程序演示

//接口a
interface a{
	int max=100;
	void face();
}
//接口b
interface b{
	void shout();
}
//接口c实现了多继承
interface c extends a, b{
	//接口的继承与类的继承方式类似,不再写入内容
}
//一个类可接入多个接口
class ren implements a,b{
	
	//必须实现所有接口的所有方法!
	@Override
	public void shout() {
		System.out.println(max);
	}
	@Override
	public void face() {
		System.out.println(max);
	}
}

注释

  1. 以上就是前阵学到Java面向对象编程的小总结,写的有些粗糙,只是简述了面向对象编程过程中常用的编程框架,有一部分东西没有进行阐述。

  2. 还有就是异常的处理try-catch-finally,什么手动抛出异常,不在这里写下。

在我看来: Java面向对象编程是编程思维方式的一种转变,过去的面向过程的思想中,不管什么牛鬼蛇神全都放在一起,最终实现就行。而面向对象编程这里则是将事物类化,然后就new一个对象直接调用其属性和方法即可。emmm,挺有意思。

层楼终究误少年,自由早晚乱余生!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值