《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)

前一次简单说明了一下面向对象编程的概念,今天我们就把这些概念通过Java语法来实现,然后看看效果。

来看第一个案例:定义女神类,再根据女神类创建三个女神对象,并使用女神对象的属性和方法。

第一步:定义女神类(因为Java本身没有这个类型,所以我们自己创建这个类型)

/**
 * 女神类
 */
public class Goddess {
	public String name;	//姓名
	public int age;		//年龄
	public double stature;	//身高
	
	/**
	 * 自我介绍方法
	 */
	public void show(){
		System.out.println("我叫"+name+",今年"+age+"岁,身高为"+stature);
	}
}

第二步:创建包含main方法的Test类(main方法相当于程序运行的起始点)

public class Test {
	public static void main(String[] args) {

	}
}

第三步:在main方法创建三个女神类的对象(因构造方法等还没学习,所以使用最基本的语法)

public class Test {
	public static void main(String[] args) {
		//创建三个女神类型的对象
		Goddess lin = new Goddess();
		Goddess chang = new Goddess();
		Goddess jia = new Goddess();
		
		//使用对象的属性
		lin.name = "林志玲";
		lin.age = 43;
		lin.stature = 1.73;
		chang.name = "苍井空";
		chang.age = 34;
		chang.stature = 1.55;
		jia.name = "贾玲";
		jia.age = 35;
		jia.stature = 1.66;
		
		//调用对象的方法
		lin.show();
		chang.show();
		jia.show();
		
	}
}

运行结果:

看语法是不是很简单!!!如果不使用面向对象的方式,那我们name要定义三个变量,age或定义三个变量,stature也要三个变量,一共要九个变量,而现在只需要三个Goddess类型的变量就解决问题了,而且属性都是同名的,也方便记忆和使用。

现在又有新的需求出现!!!


以前所有的都是女神,现在需要再细分为御姐和萌妹!(声明:作者不知道这些是什么意思,都是通过网络查询才知道的,作者君是单纯的!!!)

然后和女神平级的还有女汉子,女汉子又分为学霸和屌丝!

女神和女汉子都是女人!!!


最后最后最后,根据现在变化的需求,我们还要考虑到,以后会不会有更多种类的女神出现?比如女王等,还会不会和女神平级的“恐龙”出现?

这些都是有可能的吧,所以我们就考虑把代码做如下修改(用到继承):

女性:

    属性:姓名,年龄,身高

    方法:自我介绍()

女神:具有女性的所有行为(方法)和特征(属性)

    特有属性:颜值

女汉子:具有女性的所有行为(方法)和特征(属性)

    特有属性:霸气值

    特有方法:狂化()

御姐:具有女神的所有行为(方法)和特征(属性)

    特有属性:性感值

萌妹:具有女神的所有行为(方法)和特征(属性)

    特有方法:卖萌()

学霸:具有女汉子的所有行为(方法)和特征(属性)

    特有属性:悟性

    特有方法:打击学渣()

屌丝:具有女汉子的所有行为(方法)和特征(属性)

    特有方法:抠脚()


我来写女性、女神和女汉子的代码,剩下的代码相信各位看官能够自己实现了吧。

/**
 * 女性类
 *
 */
public class Woman {
	public String name;		//姓名
	public int age;			//年龄
	public double stature;	//身高
	
	/**
	 * 自我介绍方法
	 */
	public void show(){
		System.out.println("我叫"+name+",今年"+age+"岁,身高为"+stature+"米.");
	}
}
/////////////////////////////////////////////////////////////////////////////
/**
 * 女神类
 * 继承了Woman类
 */
public class Goddess extends Woman {
	public int faceValue;		//颜值
}
/////////////////////////////////////////////////////////////////////////////
/**
 * 女汉子类
 * 继承了女性类
 *
 */
public class GirlMan extends Woman {
	public int domineeringValue;	//霸气值
	
	public void berserker(){
		System.out.println("霸气值已充满,开始狂化中···");
	}
}

三个类定义好了,其中女神和女汉子类使用extends关键字继承了女性类。继承后,女神和女汉子就可以使用女性类中定义的属性和方法了。

编写测试类代码:

public class Test {
	public static void main(String[] args) {
		//创建三个女神类型的对象
		Goddess lin = new Goddess();	//女神对象
		GirlMan jia = new GirlMan();	//女汉子对象
		
		//使用对象的属性
		lin.name = "林志玲";
		lin.age = 43;
		lin.stature = 1.73;
		lin.faceValue = 99;		//颜值 
		jia.name = "贾玲";
		jia.age = 35;
		jia.stature = 1.66;
		jia.domineeringValue = 95;	//霸气值
		
		//调用对象的方法
		lin.show();	//调用父类(女性类)的方法
		jia.show();		
		jia.berserker();//调用自已特有的方法
		
	}
}

运行结果:

至于封装和多态,我们留到下一篇再来介绍吧。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android知识点总结

再见kotlin----01语句控制

642
来自专栏斑斓

编程修炼 | Scala中Stream的应用场景及其实现原理

假设一个场景需要在50个随机数中找到前两个可以被3整除的数字。听起来很简单,我们可以这样来写: def randomList = (1 to 50).map(_...

2815
来自专栏青玉伏案

窥探Swift之基本数据类型

  在上一篇博客“窥探Swift编程之在Playground上尽情的玩耍”中介绍了如何使用Playground来学习Swift语言。本篇博客就使用Playgro...

1895
来自专栏take time, save time

初级程序员面试不靠谱指南(六)

五.很强很伟大的函数指针     我想看到这个标题中“函数指针”几个字之后,估计有一半人会选择关掉界面,因为我最开始学习C语言的时候这一章我曾无数次跳过,看到书...

33410
来自专栏程序员互动联盟

【编程基础】C++ Primer快速入门六:数组和指针

我们知道,C语言以及早期的面向结构的语言几乎都支持数组定义,比如整形数组int 女神[2],表示有俩数: 女神[0], 女神[1],她们都是整数。 C++ 语言...

36610
来自专栏斑斓

函数式非凡的抽象能力

如果说面向对象思想是物质世界的哲学观,则函数式思想展现的就是纯粹的数学思维了。函数作为一等公民,它不代表任何物质(对象),而仅仅代表一种转换行为。是的,任何一个...

3205
来自专栏小筱月

各种排序算法

冒泡排序还有一种优化算法,就是立一个flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序

963
来自专栏后端技术探索

是时候来彻底了解字符编码了!!

你是否认为“ASCII码 = 一个字符就是8比特”?你是否认为一个字节就是一个字符,一个字符就是8比特?你是否还认为你是否还认为UTF-8就是用8比特表示一个字...

782
来自专栏Java面试通关手册

精研3道简单的网易2018校招编程题

下面三道编程题来自网易2018校招编程题,这三道应该来说是非常简单的编程题了,这些题目大家稍微有点编程和数学基础的话应该没什么问题。看答案之前一定要自己先想一下...

1746
来自专栏不是你的bug

计算机是如何实现加法的

我们除去右下角看其他部分,和或运算结果是完全一致的。再单独看一下右下角,输入都为1时输出为0这不就是与非的操作结果吗。那我们将输入同时给到或门和与非门看下他们的...

1031

扫码关注云+社区