zoukankan      html  css  js  c++  java
  • Java学习(五)

    Java中package的含义与C++中namespace的用法类似,都是为了防止各个package/namespace中出现类重名的情况。但package还有一个特性,就是一个package中各个类是可以相互访问的。

    所以除了一个package中的主类需要使用public修饰符外,其他的类不需要添加修饰符。

    用户可以使用Eclipse中的import指令导入相关的package。系统默认为我们导入import java.lang.*包,这表示导入lang包下所有的类,但不包括langpackage下的子package。

    所以,以下两条指令是不同的:

    1 import java.awt.*;
    2 import java.awt.dnd.*;

    在Java中由以下几种修饰符:private、默认、abstract、public、四种,主要区别如下:

     

    此外,还有修饰符:static、final和abstract。具体用法如下:1.static final可以表示常量;2.类中的字段若被static final修饰,若未初始化,那么系统会自动初始化,基本类型数据设为0,引用类型设为null;3.若只是被final修饰,那么该类不能被继承。被修饰的字段只能被用户赋值一次,系统不自动初始化;4.static与this、super不能同时存在;5.类中含有被abstract修饰的字段或方法时,类名一定要添加abstract修饰符。抽象方法不进行实例化,只是申明方法形式,而是由子类进行实例化;6static可以充当全局变量修饰符的角色。

    另外,在Java的类中中还有set和get,分别表示只写和只读,它们的专有名称为bean。其实质就是设定private字段的函数和读取private字段的函数。由于类具有封装性、继承性,使用private更安全。

    set和get的命名方式为setField(){……}和getField(){……}。get和set后面的第一个字母大写。

     1 class ClassTest
     2 {
     3     private int m;
     4     public ClassTest(){}
     5     public ClassTest(int a)
     6     {
     7         m=a;
     8     }
     9     
    10     public void setM(int a)
    11     {
    12         this.m=a;
    13     }
    14     
    15     public int getM()
    16     {
    17         return m;
    18     }
    19 }

    接口在Java中被放到很高的高度,甚至出现了名为面向接口编程。接口的作用是预先定义好一些函数的名称与参数,但并不提供实现的方法。接口中的每个方法修饰符为public abstract。其他类使用接口时用关键字implements来表示。一个类可以同时使用多个接口,即一个接口可以对应多个类,一个类也可以对应多个接口。接口之间也可以继承,用extends来表示。

    接口的存在主要是为了统一规范,提高代码的独立性。如在A类中使用了接口I中的方法Menthod1(),在B类中也使用了方法Menthod1(),那么B类的方法可以用A类的方法代替,因为两者的名称相同,最后实现的功能也相同,而不需要考虑两者具体实现的差异。这能大大提高代码的可扩展性。

    在Java的接口中也可以存放常量,修饰符为public static final(final也可以省略)。

    Java中枚举是用class来实现的。具体用法如下:

     1 package helloWorld;
     2 
     3 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;
     4 
     5 public class Interface {
     6     
     7 
     8 }
     9 
    10 interface Person
    11 {
    12     public static final String MSG="What a pretty girl!";
    13     public abstract void setName(String str);
    14     public abstract void setAge(int n);
    15     public static enum Light{Red,Orange,Yellow,Green,Blue,Purple}
    16 }
    17 
    18 class Student implements Person
    19 {
    20     private int age;
    21     private String name;
    22     Light light=Light.Orange;
    23     @Override
    24     public void setAge(int n)
    25     {
    26         age=n;
    27     }
    28     public void setName(String str)
    29     {
    30         name=str;
    31     }
    32     
    33     public void print()
    34     {
    35         System.out.println(age);
    36         System.out.println(name);
    37         System.out.println(MSG);
    38         System.out.println(Light.Orange);
    39         switch(light)//不可写成Light.Orange
    40         {
    41         case Red:
    42             System.out.println("Red");
    43             break;
    44         case Orange:
    45             System.out.println("Orange");
    46             break;
    47         default:
    48             System.out.println("Nothing");
    49             break;
    50         }
    51     }
    52                 
    53 }
  • 相关阅读:
    Python Data Type
    Python 基础二
    Python的基础知识
    查看当前进程
    linux 通过服务名称查找目录
    在linux下登录MySQL,发现无法输入密码?
    多米诺骨牌效应
    MySQL MVCC底层原理详解MySQL MVCC底层原理详解
    C#保留小数点后几位
    在ubuntu服务器上安装mysql并配置外网访问
  • 原文地址:https://www.cnblogs.com/2Bthebest1/p/8409107.html
Copyright © 2011-2022 走看看