Java基础总结(一)

1、开始的唠叨html

有朋友开始接触Java,问我一些基础的问题,忽然发现不知该如何回答,十分尴尬。痛定思痛,便回炉重造,将java基础的知识从新梳理了一遍。java

如下是我看书时或摘要、或总结的语言,彻底是Java中基础的基础。编程

2、学习笔记数组

(一)基本数据类型ide

1.标识符区分大小写:hello与Hello是不一样的标识符。函数

2.基本数据类型的精度由低到高依次为:byte short char int long float double学习

3.格式控制符号:this

%d int类型
%c char类型
%f 浮点类型
%s 字符类型

 

 

 

 

例如:spa

System.out.println("%d,%f",1,1.23)

4.数组的两种建立方式:设计

Object[] arry=new Object[n]; Object[] arry=new Object[]{x,y,z,..};

(二)表达式

 1.switch case语句: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——JAR FILE

(四)子类与继承

1.Object类:全部类都继承自Object类,“Class A”原型是“Calss A extends Object”。

2.继承:

  • 当子类与父类不在同一个包中,子类只继承父类中protected和public访问权限的成员变量与方法
  • 子类继承的方法只能操做子类继承和隐藏的成员变量。子类新定义的方法能够操做子类继承和子类新声明的成员变量,但没法直接操做子类隐藏的成员变量(要使用super)
  • 子类不继承父类的构造方法,所以子类在其构造方法中要使用super调用父类的构造方法。
  • 当类中定义了一个或多个构造方法时,java不提供默认构造方法。所以父类中定义多个构造方法时,必须包括一个不带参数的构造方法。

(五)面向抽象编程

1.对象的向上转型:上转型对象不能操做子类新增的成员变量与方法

父类 f=new 子类();

2.Open-Closed Principle:系统应当对扩展开放,对修改关闭。(怎么办?面向抽象和接口啊!)

3.面向抽象编程:设计类时,不应让类面向具体的类,而是面向抽象类。

例子:

设计抽象类SIM,以便扩展具体的运营商。

public abstract class SIM { protected String number; protected String type; public abstract void setNumber(String number); public abstract void setType(); public void show(){ System.out.println("类型:"+type+"号码"+number); }

设计手机类,重点是在手机类中添加SIM抽象类,等待子类具体实现。

public class MobliePhone { private SIM sim; public void setSIM(SIM sim){ this.sim=sim; } public void showMessage(){ sim.show(); }

实现两种类型的SIM卡,设为移动和联通。(Type类型能够在构造函数中实现)

public class yidong extends SIM{ @Override public void setNumber(String number) { this.number=number; } @Override public void setType() { this.type="联通"; }

主函数以下,若须要扩展SIM卡,只要继承SIM抽象类便可。如此设计即符合Java开闭原则。

public static void main(String[] args) { MobliePhone mp=new MobliePhone(); SIM sim=new yidong(); sim.setNumber("123456789"); sim.setType(); mp.setSIM(sim); mp.showMessage(); sim=new liantong(); sim.setNumber("987654321"); sim.setType(); mp.setSIM(sim); mp.showMessage(); }

(六)面向接口编程

1.接口:

  • 接口中只有抽象方法常量,抽象方法必定是public,常量必定是public static,你看不到是由于系统隐藏了。
  • 类实现接口,若没有重写接口中的所有方法,这个类就是一个抽象类。
  • 接口要求一些类具备相同名称的方法,但不强迫这些类具备相同的父类。
  • 接口没法调用类中非接口方法。
  • (很关键)若是一个方法的参数是接口类型,就能够将实现该接口的类的实例的引用传递给该接口参数,这个接口参数就能够回调类实现的接口方法。

2.面向接口编程:核心思想是接口回调,与面向抽象编程有必定的类似性。

例子:

设计一个广告的接口。

public interface Advertisement { void showMess(); void showCompany(); }

设计Televison类用于播放广告,重点是设置接口的参数回调。

public class Televison { Advertisement adv; public void setAdv(Advertisement adv){ this.adv=adv; } public void advertise(){ adv.showCompany(); adv.showMess(); }

实现具体的广告类

public class naobaijin implements Advertisement{ @Override public void showMess() { System.out.println("收礼只收脑白金"); } @Override public void showCompany() { System.out.println("白金集团"); }

主函数以下,若须要扩展广告,只要实现Advertisement接口便可。如此设计即符合Java开闭原则。

public static void main(String[] args) { Televison tv=new Televison(); tv.setAdv(new naobaijin()); tv.advertise(); tv.setAdv(new sufei()); tv.advertise(); }

3、结束的唠叨

遗忘是学习的一部分,就代码而言,几个星期不接触就会感到生疏。

以上整理的内容都是我二刷JAVA时以为重要的以及以前遗忘的,再通过选择后发布。不成体系,仅供参考。

相关文章
相关标签/搜索