以下是小编总结的中的基础。因为最近有很多同学都在问基础问题,这里小编便给大家重新将Java基础知识梳理一遍。
(一)基本数据类型
1.标识符区分大小写:hello与Hello是不同的标识符。
2.基本数据类型的精度由低到高依次为:byteshortcharintlongfloatdouble
3.格式控制符号:
%d int类型
%c char类型
%f 浮点类型
%s 字符类型
例如:
System.out.println("%d,%f",1,1.23)
4.数组的两种创建方式:
Object[]arry=newObject[n];
Object[]arry=newObject[]{x,y,z,..};
(二)表达式
1.switchcase语句:case下加break或者加return都是可以的。
2.break与continue:break语句结束整个循环;continue结束当前循环,开始下一次循环。
(三)类与对象
1.多态:Java中多态分两种,重载(Overload)和重写(Override)。
重载:一个类中多个方法具有相同的名字,但方法的参数不同。
参数个数不同或者参数类型不同
返回类型与参数名称不参与比较
重写:子类重新(覆盖)父类的方法。
可以提高访问权限,不允许降低访问权限。
2.this关键字:this表示当前对象,在构造方法中代表该构造方法所创建的对象。
3.包与访问权限:
Java.lang包:系统自动添加,所以你从来都看不到。(包括System、Math类等)
包访问权限:不是三大国民修饰符修饰的成员变量和方法被称为友好变量和友好方法,在同一包中可以自由访问。
4.反编译与文档生成器:
Javap:将字节码反编译为源码。
Javadoc:将注释生成html文档。
5.生成jar文件:在Eclipse下,选择File——Export——Java——JARFILE
(四)子类与继承
1.Object类:所有类都继承自Object类,“ClassA”原型是“CalssAextendsObject”。
2.继承:
当子类与父类不在同一个包中,子类只继承父类中protected和public访问权限的成员变量与方法
子类继承的方法只能操作子类继承和隐藏的成员变量。子类新定义的方法可以操作子类继承和子类新声明的成员变量,但无法直接操作子类隐藏的成员变量(要使用super)
子类不继承父类的构造方法,因此子类在其构造方法中要使用super调用父类的构造方法。
当类中定义了一个或多个构造方法时,Java不提供默认构造方法。因此父类中定义多个构造方法时,必须包括一个不带参数的构造方法。
(五)面向抽象编程
1.对象的向上转型:上转型对象不能操作子类新增的成员变量与方法
父类f=new子类();
2.Open-ClosedPrinciple:系统应当对扩展开放,对修改关闭。(怎么办?面向抽象和接口啊!)
3.面向抽象编程:设计类时,不该让类面向具体的类,而是面向抽象类。
例子:
设计抽象类SIM,以便扩展具体的运营商
publicabstractclassSIM{
protectedStringnumber;
protectedStringtype;
publicabstractvoidsetNumber(Stringnumber);
publicabstractvoidsetType();
publicvoidshow(){
System.out.println("类型:"+type+"号码"+number);
}
设计手机类,重要的是在手机类中添加SIM抽象类,等待子类具体实现。
publicclassMobliePhone{privateSIMsim;publicvoidsetSIM(SIMsim){this.sim=sim;}publicvoidshowMessage(){sim.show();}
实现两种类型的SIM卡,设为移动和联通。(Type类型可以在构造函数中实现)
publicclassyidongextendsSIM{@OverridepublicvoidsetNumber(Stringnumber){this.number=number;}@OverridepublicvoidsetType(){this.type="联通";}
主函数如下,若需要扩展SIM卡,只要继承SIM抽象类即可。如此设计即符合Java开闭原则。
publicstaticvoidmain(String[]args){MobliePhonemp=newMobliePhone();SIMsim=newyidong();sim.setNumber("{{123456789:0}}");sim.setType();mp.setSIM(sim);mp.showMessage();sim=newliantong();sim.setNumber("{{987654321:0}}");sim.setType();mp.setSIM(sim);mp.showMessage();}
(六)面向接口编程
1.接口:
接口中只有抽象方法和常量,抽象方法一定是public,常量一定是publicstatic,你看不到是因为系统隐藏了。
类实现接口,若没有重写接口中的全部方法,这个类就是一个抽象类。
接口要求一些类具有相同名称的方法,但不强迫这些类具有相同的父类。
接口无法调用类中非接口方法。
(很关键)如果一个方法的参数是接口类型,就可以将实现该接口的类的实例的引用传递给该接口参数,这个接口参数就可以回调类实现的接口方法。
2.面向接口编程:核心思想是接口回调,与面向抽象编程有一定的相似性。
例子:
设计一个广告的接口。
publicinterfaceAdvertisement{
voidshowMess();voidshowCompany();
}
设计Televison类用于播放广告,重要的是设置接口的参数回调。
publicclassTelevison{Advertisementadv;publicvoidsetAdv(Advertisementadv){this.adv=adv;}publicvoidadvertise(){adv.showCompany();adv.showMess();}
实现具体的广告类
publicclassnaobaijinimplementsAdvertisement{@OverridepublicvoidshowMess(){System.out.println("收礼只收脑白金");}@OverridepublicvoidshowCompany(){System.out.println("白金集团");}
主函数如下,若需要扩展广告,只要实现Advertisement接口即可。如此设计即符合Java开闭原则。
main(String[]args){Televisontv
以上是小编为大家梳理的Java基础中的基础,如果还有问题可以关注“极悦Java学院”微信公众号留言咨询,如果你对编程有兴趣,想要成为合格的Java程序员,那么极悦Java零基础班现已开启免费试学阶段,对于想学Java的同学无疑是好消息,亲自考察教学质量,机会就在眼前,针对不方便前来的同学,可以关注极悦,赶快学起来吧.