首页 > 代码库 > 【Java学习系列】第2课--Java语法及面向对象

【Java学习系列】第2课--Java语法及面向对象

本文地址

 

分享提纲:

  1. Java程序特点

    1.1 基本语法

    1.2 字符创

    1.3 变量

    1.4 Java数组

    1.5 Java枚举

    1.6 Java修饰符

  2. Java面向对象

    2.1 Java类和对象

    2.2 类的一些注意点

    2.3 Java Number类

  3.参考文档

 

  本文主要介绍下Java程序的特点(不同于PHP的地方)和面向对象的一些特点

 

1. Java程序特点


 

    

 

  【示例代码】

1 public class HelloWorld {2     /* 第一个Java程序3      * 它将打印字符串 Hello World4      */5     public static void main(String []args) {6         System.out.println("Hello World"); // 打印 Hello World7     }8 }

  

  执行过程如下(图像演示):

C : > javac HelloWorld.javaC : > java HelloWorld Hello World

 

  1)【基本语法】

    a)【大小写敏感】

      Java的类和函数是大小写敏感的,这一点和PHP不同,PHP的类和函数的大小写不敏感

    b)【源文件名

     --【一个文件只能有一个类】源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。

      答案是否等的:

      技术分享

     -- PHP没有这样的要求,因为PHP本身就是解释型的语言,不需要编译,也不需要生成编译文件类似 .class的文件

    c)【主方法入口

     --必须有main方法(静态方法):所有的Java 程序由public static void main(String []args)方法开始执行。

      --【也有例外】

      java很多知识的,如果是单纯的javaApplication(java应用程序)应该有main()函数作为入口,但是像jsp或者是applet等都是不需要main()函数的

    d)【每个变量都要先定义,并制定类型】

     -- 这也是与PHP语言的不同点

 

  2)【字符串】

    a)【必须用双引号引着】

    b) 【连接符】java中的字符串的链接符号是 "+", 不像PHP中是 ".",因为 "." 在Java中是 类中的变量的链接符。

    

  3)【变量】

    a)变量必须执行类型,且先定义

    b)【种类】

      --【概述】

        Java有两大数据类型,内置数据类型 和 引用数据类型

        内置数据类型

          

        Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。   byte, short, int, long, float, double, boolean, char

        

        引用数据类型:

        

    --在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。   -- 对象、数组都是引用数据类型。   --所有引用类型的默认值都是null。   -- 一个引用变量可以用来引用与任何与之兼容的类型。   -- 例子:Site site = new Site("Runoob")。

 

        

    c)【常量】

      -- 在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似

 

    

  4)【Java数组】

    a)数组是储存在堆上的对象,可以保存多个同类型变量

 

  5)【Java枚举】

    a)Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。

    b)【语法】

class FreshJuice {   enum FreshJuiceSize{ SMALL, MEDUIM, LARGE }   FreshJuiceSize size;}

 

  6)【Java修饰符】

   -- 访问修饰符 分类如下

    a) 默认的,也称为 default,在同一包内可见,不使用任何修饰符。    b) 私有的,以 private 修饰符指定,在同一类内可见。    c) 共有的,以 public 修饰符指定,对所有类可见。    d) 受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。

 

  -- 非访问修饰符

    a)【Synchronized 修饰符】:     -- Synchronized 关键字声明的方法同一时间只能被一个线程访问。Synchronized 修饰符可以应用于四个访问修饰符。     -- public synchronized void showDetails(){.......}       b)【Transient 修饰符】:    --序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。    --该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。     -- 实例       public transient int limit = 55;   // 不会持久化       public int b; // 持久化    c) 【Volatile修饰符】    --volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。   -- 一个 volatile 对象引用可能是 null

 

      

 

2. Java面向对象


   【代码示例】

   该文件名为 TestJavaClass.java ,对应文件里唯一的一个 public的类的类名。

        实现的功能就是 示例化一个 狗的对象,同时设置狗的年龄并得到该年龄,然后输出.

   javac TestJavaClass.java

   java TestJavaClass

 1 //1. 入口测试类 2 public class TestJavaClass 3 {//{{{ 4     public static void main(String []args) 5     {//{{{ 6         //注意点1:实例化要制定类型 TestDog 7         //注意点2:java程序中的字符串必须是 双引号引着 8         TestDog testDog = new TestDog("Tom"); 9         testDog.run();10     }//}}}11 12 }//}}}13 14 //2.测试小狗类15 class TestDog16 {//{{{17     String name;18     int age;19     //构造函数20     public  TestDog (String name)21     {//{{{22         System.out.println("这条狗叫 " + name);23     }//}}}24 25     //运行26     public  void run()27     {//{{{28         System.out.println("01 开始运行\n");
       //注意点3:类的内部调动函数,直接写 setAge(dogAge)
29 setAge(10);30 int dogAge = getAge();31 System.out.println("02 狗的年龄是 " + dogAge);32 }//}}}33 34 //获取35 public int getAge()36 {//{{{37 return age;38 }//}}}39 40 //设置41 public void setAge(int ageValue)42 {//{{{
      //注意点4:类的内部调动类的成员变量,直接写 age
43 age = ageValue;44 }//}}}45 46 }//}}}

 

  1)【Java的类和对象】

    a)【调用函数和变量】

        类内部调用函数,直接就是 函数名本身,直接写 setAge(dogAge),变量也是直接写 age

    b)【类的修饰】

        PHP中类的修饰,最多就是 抽象类为 abstract class ,但是在 Java中一个文件中必须有一个 public class,且为该文件的名。

    c)【定义类的函数】

        -- PHP中常见的是 public function functionName()

        -- 在Java中,则不需要 fuction的说明,但是要执行返回值类型, public void functionName()

 

    d)【构造方法】

        --PHP中的构造方法是 public function __construct(){} ,且只能有一个

        --Java的构造方法可以有多个,在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法,从而实现不同情况下走不同的构造方法。

          例如:

        

public class A{   public A(){      System.out.println("调用了A的无参构造函数");   }   public A(String mess){      System.out.println("调用了A的有参的构造函数\n"+         "参数内容为:"+mess);   }}

 

  2)【类的一些注意点】

    a)【import语句】

      -- 【位置】如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。

      -- 【作用范围】import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明

 

   

  3)【Java Number 类】

    a)【产生原因】

      在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类

    b)【包装类】

      所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

    c)【Number子类方法】

      有 xxxValue(),compareTo() 等

 

 

 

 

 

  

【Java学习系列】第2课--Java语法及面向对象