java基础都不知道,android入门看了也白看

        为什么要以这个开篇呢?因为java语法是整个android开发的基石, android是java的封装框架,用来在android系统上安装运行,我们首先要了解java的语法结构才能撬开android的大门!

一,java

对,以上都是java的语言特性。也就是说 你会了android还可能会写后台,前端,当个全栈啥的

二,java基本类型

基本内置类型包括:byte,short,int,long,float,double,boolean,char

具体介绍:

  • byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
  • short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
  • int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
  • long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
  • float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。(浮点类型)
  • double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。(浮点类型)
  • char:16位,存储Unicode码,用单引号赋值。
  • boolean:只有true和false两个取值。

关于boolean类型,有意思的是

根据http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html官方文档的描述:

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.

布尔类型:布尔数据类型只有两个可能的值:真和假。使用此数据类型为跟踪真/假条件的简单标记。这种数据类型就表示这一点信息,但是它的“大小”并不是精确定义的。

可以看出,boolean类型没有给出精确的定义,《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。这其实是运算效率和存储空间之间的博弈,两者都非常的重要。

总结:

咱们主要是要知道有这些基本类型,一般来说,除了byte,short,char,其他几个都非常常用,但是一旦用到byte,那基本上就接触到了io或者数据格式转换,例如音视频转码等,其他两个比较少见,咱们先记着 (๑•̀ㅂ•́)و✧ ╰(*°▽°*)╯

三,变量

     1).是什么?

变量指得是内存中装载数据的小盒子,你只能用它来存数据和取数据。

    2).为什么?

在Java语言中,所有的变量在使用前必须声明(这是基本原则,刚开始就是这么定的)。

   3).怎么做?

声明变量的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;

比如: byte z = 22; // 声明并初始化 z

四,函数

   1).是什么?

函数是定义在类中的一段独立的代码块,用来实现某个功能。Java中,函数又被称为方法。

    2).为什么?

函数的主要作用是为了提高代码的复用性。

函数都是在栈内存中运行;运行的函数处在栈顶。

   3).怎么做?

一般情况下,定义一个方法包含以下语法:

修饰符 返回值类型 方法名(参数类型 参数名){

...

方法体

...

return 返回值;

}

  • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
  • 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
  • 方法体:方法体包含具体的语句,定义该方法的功能。

总结:

函数名:尽量做到见名知意

标准函数:我们在创建函数的时候,要求每一个函数只完成一个功能,强调函数的单一性

上面这些也是先记着,没经历过产品经理的疯狂改需求的痛是不会懂的

(;′⌒`)

五,对象和类

   1).是什么?

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。

类:类是一个模板,它描述一类对象的行为和状态。

    2).为什么?

  • 对比现实对象和软件对象,它们之间十分相似。
  • 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
  • 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
  • 面向对象特性: 1,多态2,继承3,封装

   3).怎么做?

    通过已创建的对象来访问成员变量和成员方法

    /* 实例化对象 */

   Object referenceVariable = new Constructor();

  /* 访问类中的变量 */

  referenceVariable.variableName;

  /* 访问类中的方法 */

  referenceVariable.methodName();

六,类内部变量

   1).是什么?

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

    2).为什么?

在类的内部分布位置和修饰符不一样的变量

   3).怎么做?

public class A{

 public static int a = 1; 类变量

 public int b = 2;成员变量

 void funA(){

   int c =3; 局部变量

 }

}

七,包

   1).是什么?

包主要用来对类和接口进行分类。

    2).为什么?

当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。

   3).怎么做?

包语句的语法格式为:

package pkg1[.pkg2[.pkg3…]];

package net.java.util;

public class Something{

...

}

Import语句导入包

在Java中,如果给出一个完整的限定名,包括包名、类名,那么Java编译器就可以很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。

八,接口

    1).是什么?

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

    2).为什么?

一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

   3).怎么做?

     (1).接口的声明

   接口的声明语法格式如下:

   [可见度] interface 接口名称 [extends 其他的接口名] {

   // 声明变量

   // 抽象方法

   }

     (1).接口的实现

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。

类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

实现一个接口的语法,可以使用这个公式:

Animal.java 文件代码:

... implements 接口名称[ 其他接口名称, 其他接口名称..., ...]

一个接口能继承另一个接口,和类之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。

接口特性

  • 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
  • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
  • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

注:JDK 1.8 以后,接口里可以有静态方法和方法体了。

虽然接口内部定义了一些抽象方法,但是并不是所有的接口内部都必须要有方法,比如Seriallizable接口,Seriallizable接口的作用是使对象能够“序列化”,但是Seriallizable接口中却没有任何内容,也就是说,如果有一个类需要实现“序列化”的功能,则这个类必须去实现Seriallizable接口,但是却并不用实现方法(因为接口中没有方法),此时,这个Serilizable接口就仅仅是一个“标识”接口,是用来标志一个类的,标志这个类具有这个“序列化”功能。

九,抽象类

   1).是什么?

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

    2).为什么?

  • 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
  • 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
  • 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
  • 在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口,从类层面满足多态的特性。

   3).怎么做?

 抽象类及方法定义,依赖关键词:abstract

public abstract class Employee{

private String name;

private String address;

private int number;

public abstract double computePay();

//其余代码

}

抽象类总结规定:

  • 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
  • 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
  • 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
  • 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
  • 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
发布了58 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_34203714/article/details/100545963