博客第三天-java基础简介

对昨天安排的事情的总结,首先,关于Spring和JDBC的学习没有展开,晚上对于时间的安排能力还是太弱。

再谈一下今天的收获,今天新增了一个方立勋的javaweb十天教程,相信到时候能够成为自己的助力,好,接下来展开今天的学习总结。

今天的学习主要集中在程序功能的扩展性,其中包括,1.抽象类 2.接口 3.对象的特性,多态。

先开始讲抽象,下面展开讲它的特点:

1.抽象方法一定在抽象类中

2.抽象方法和抽象类必须被abstract修饰

3.抽象类不可以用new创建,因为没意义

4.抽象类中的抽象方法要被使用,必须由子类复写起所有抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

那么抽象的有点就是,子类必须复写。

糅合着抽象,还学习了模板方法模式,先说明一下获取时间的方法 System.currentTimeMillis();

下面贴一段代码

/*
需求:完成一个用来获取系统运行时间的小程序,注意使用抽象类!
思路:运用模板方法方式,定义一个类,暴露可写部分,同时定义一个子类,用来写入可写部分,然后父类调用子类。最后调用的仍应该是父类
步骤:
1.定义一个父类,运用System.currentTimeMillis();来获取程序运行时间,定义一个空对象,用来给子类复写
2.定义子类,用来写入可写部分
3.调用
*/
 abstract class GetTime
{
	public final void getTime()//注意final的出现,为了不被调用
	{
		long start = System.currentTimeMillis();
		runcode();
		long end = System.currentTimeMillis();
		System.out.println("Time="+(end-start)+"毫秒");
	}
	public abstract void runcode();
	
		/*for(int x=0;x<1000;x++)
			{
				System.out.print(x);	
			}
		*/
	
}
class SubTime extends GetTime
{
		public void runcode()
		{
			for(int x=0;x<1000;x++)
			{
				System.out.print(x);	
			}
		}
}
class Demo
{
	public static void main(String[] args)
	{
		SubTime gt = new SubTime();
		gt.getTime();
			
	}	
}
注意到,其中类 GetTime被抽象类中的抽象函数调用,而类中抽象函数又被非抽象部分调用,最后主函数调用非抽象部分,完成运算。

该段代码的有点体现在GetTime部分,程序修改起来非常方便,不需要在抽象类中进行修改。


接着讲接口。(在这里没有打代码,就纯文字描述了,后期再补上)

初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示

class用于定义类,interface用于定义接口

接口定义时,格式特点:1.接口中常见定义:常量、抽象方法 2.接口中的成员都有固定修饰符(常量:public static final  方法:public abstract  接口中所有成员都是public的)

接口是不可以创建对象的,因为有抽象方法。需要被子类实现(implements),子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是一个抽象类

一个类可以实现多个接口,也叫多实现,类也可以继承一个类的同时实现多个接口

接口之间可以完成多继承,接口可以理解为扩展功能,但不是必备(为方便理解  继承 is-a 接口 like-a)


还学习了多态,不过还没有学习完。

多态:可以理解为事物存在的多种体现形态。

1.多态的体现:父类的引用指向了自己的子类对象,父类的引用也可以接收自己的子类对象

2.多态的前提:必须是类与类之间有关系,要么继承,要么实现。

3.多态的好处:多态的出现大大地提高了程序的扩展性

4.多态的弊端:提高了扩展性,但是只能使用父类中的成员

5.多态的应用:见下列源代码

/*
运用方法:多态的使用,提高程序的复用性
需求:杭州电子科技大学有很多学院,每个学院都有自己的名称,同时对应显示自己有几个班
*/
abstract class Hdu
{
	
	public abstract void num();
}
class economic extends Hdu
{
					
		public void num()
		{
			int n=7;
			System.out.println("经济学院");
			System.out.println("班级数量="+n);
		}
}
class doHdu
{
		public void dosome(Hdu name)
		{
			
			name.num();	
		}
}
class duotaiDemo
{
	public static void main(String[] args)
	{
		doHdu a = new doHdu();
		a.dosome (new economic());	
	}	
}
6.多态的代码中的特点(多态使用的注意事项)

(1)成员函数在多态调用时,编译看左边,运行看右边

(2)在多态中,成员变量的特点:无论编译和运行,都参考左边。


知识的回顾就到这里,总结下今天的学习。

对于自己学习的内容,略显生涩的部分,请一定要记得自己敲代码,一方面是为了加深理解,更重要的是为了复习的时候能够加深印象。

好,就这些,晚安。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值