Java作为一种面向对象语言。支持以下基本概念:

  • 多态
  • 继承
  • 封装
  • 抽象
  • 对象
  • 实例
  • 方法
  • 重载

    Java中的类

    类可以看成是创建Java对象的模板。

    通过下面一个简单的类来理解下Java中类的定义:

    public class Dog{
         String breed;  
         int age;
         String color;
    void barking(){      }
    void hungry(){       }
    void sleeping(){     }
    }

    一个类可以包含以下类型变量:

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

    一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类的方法。

    构造方法

    每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

    在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

    下面是一个构造方法示例:

    public class Puppy{ public Puppy(){ } public Puppy(String name){ // 这个构造器仅有一个参数:name } }

    创建对象

    对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

    • 声明:声明一个对象,包括对象名称和对象类型。
    • 实例化:使用关键字new来创建一个对象。
    • 初始化:使用new创建对象时,会调用构造方法初始化对象。

    下面是一个创建对象的例子:

    public class Puppy{
              public Puppy(String name){
              //这个构造器仅有一个参数:name
                    System.out.println("小狗的名字是 : " + name ); }
              public static void main(String[] args){
             // 下面的语句将创建一个Puppy对象
                     Puppy myPuppy = new Puppy( "tommy" ); }
    }

    编译并运行上面的程序,会打印出下面的结果:

    小狗的名字是 : tommy

    访问实例变量和方法

    通过已创建的对象来访问成员变量和成员方法,如下所示:

    /* 实例化对象 */          Object referenceVariable = new Constructor();
    /* 访问类中的变量 */         referenceVariable.variableName;
    /* 访问类中的方法 */            referenceVariable.methodName();

    实例

    下面的例子展示如何访问实例变量和调用成员方法:

    public class Puppy{
            int puppyAge;
            public Puppy(String name){
            // 这个构造器仅有一个参数:name
                    System.out.println("小狗的名字是 : " + name ); }
           public void setAge( int age ){
             puppyAge = age; }
           public int getAge( ){
                    System.out.println("小狗的年龄为 : " + puppyAge );
                    return puppyAge; }
            public static void main(String[] args){
              /* 创建对象 */
                     Puppy myPuppy = new Puppy( "tommy" );
              /* 通过方法来设定age */
                     myPuppy.setAge( 2 );
              /* 调用另一个方法获取age */
                     myPuppy.getAge( );
              /*你也可以像下面这样访问成员变量 */
                     System.out.println("变量值 : " + myPuppy.puppyAge ); } }

    编译并运行上面的程序,产生如下结果:

    小狗的名字是 : tommy
    小狗的年龄为 : 2
    变量值 : 2

    源文件声明规则

    在本节的最后部分,我们将学习源文件的声明规则。当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。

    • 一个源文件中只能有一个public类
    • 一个源文件可以有多个非public类
    • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
    • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
    • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
    • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

    类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。

    除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。


    Java包

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

    Import语句

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

    例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类

    import java.io.*;

    一个简单的例子

    在该例子中,我们创建两个类:Employee 和 EmployeeTest

    首先打开文本编辑器,把下面的代码粘贴进去。注意将文件保存为 Employee.java。

    Employee类有四个成员变量:name、age、designation和salary。该类显式声明了一个构造方法,该方法只有一个参数。

    Employee.java 文件代码:

    import java.io.*;
    public class Employee{
               String name; int age;
              String designation;
               double salary;
          // Employee 类的构造器
     public Employee(String name){
               this.name = name; }
          // 设置age的值
    public void empAge(int empAge){
               age = empAge; }
    /* 设置designation的值*/
    public void empDesignation(String empDesig){
               designation = empDesig; }
    /* 设置salary的值*/
    public void empSalary(double empSalary){
                salary = empSalary; }
    /* 打印信息 */
    public void printEmployee(){
               System.out.println("名字:"+ name );
               System.out.println("年龄:" + age );
               System.out.println("职位:" + designation );
               System.out.println("薪水:" + salary); }
    }

    程序都是从main方法开始执行。为了能运行这个程序,必须包含main方法并且创建一个实例对象。

    下面给出EmployeeTest类,该类实例化2个 Employee 类的实例,并调用方法设置变量的值。

    将下面的代码保存在 EmployeeTest.java文件中。

    EmployeeTest.java 文件代码:

    import java.io.*;
    public class EmployeeTest{
               public static void main(String[] args){
    /* 使用构造器创建两个对象 */
               Employee empOne = new Employee("RUNOOB1");
               Employee empTwo = new Employee("RUNOOB2");
    // 调用这两个对象的成员方法
               empOne.empAge(26);
               empOne.empDesignation("高级程序员");
               empOne.empSalary(1000);
               empOne.printEmployee();
               empTwo.empAge(21);
               empTwo.empDesignation("菜鸟程序员");
               empTwo.empSalary(500);
               empTwo.printEmployee(); }
    }

    编译这两个文件并且运行 EmployeeTest 类,可以看到如下结果:

    $ javac EmployeeTest.java
    $ java EmployeeTest
    名字:RUNOOB1
    年龄:26
    职位:高级程序员
    薪水:1000.0
    名字:RUNOOB2
    年龄:21
    职位:菜鸟程序员
    薪水:500.0

JAVA对象和类的更多相关文章

  1. Java-Runoob:Java 对象和类

    ylbtech-Java-Runoob:Java 对象和类 1.返回顶部 1. Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 ...

  2. (五)Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...

  3. Java 教程 (Java 对象和类)

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  4. JavaSE基础(十二)--Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  5. Java对象转xml报文和xml报文转Java对象帮助类

    import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marsha ...

  6. java对象和类学习

    定义对象的类: 一个对象的状态(属性或特征)是指那些具有他们当前值的数据域 一个对象的行为是由方法定义的,调用对象的方法就是完成对象的一个动作 使用一个通用类来定义同一类型的对象.类是一个模板,一个对 ...

  7. Java对象与类中的一个小练习

    一直在Eclipse里做练习.是做一个练习,执行一个的那种.刚刚学习了Java的对象与类,练习中把类和执行放在同一包下的两个.java文件里面了.是可以执行的.(Get) 相关代码: public c ...

  8. 重新学习Java——对象和类(二)

    上一节回归了如何以面向对象的思想去使用一些Java中的公共类,也设计了一些自己的类并介绍了设计类的基本方法和技巧,这一节我们将继续回顾这些内容,并争取从中获得新的体验和感受. 1. 静态域与静态方法 ...

  9. 重新学习Java——对象和类(一)

    之前通过记笔记的方法,对于<Java核心技术>这本书的前一章进行了重新的复习,感觉效果很好,比单独看书带来了更好的复习效果,了解了很多以前不是很注意的一些细节,但是在一些自己较为熟悉的地方 ...

随机推荐

  1. js 解析url

    以前解析uri都是去找网上的代码,用起来不怎么顺手,刚好自己前段时间做项目的时候需要用到,于是就自己写了一个,欢迎个位提出宝贵意见. getUrlParam (name) { //解析url var ...

  2. QT Designer基础——登录界面设计基础版2

    认识QT Designer提供的可选控件:以下八个大类 Layouts:布局相关 Spacers:留空 Buttons:可点击的按钮类 Item Views和 Item Widgets:高级控件,例如 ...

  3. django xadmin查找当前用户所在组

    self.request.user:获取当前登录用户用户名 qs = Group.objects.get(user=self.request.user)获取当前登录用户所在组qs.name 获取当前登 ...

  4. angular 键盘事件绑定与过滤

    方便的angular按钮绑定 如 <input (keyup.enter)="keyUpSearch($event)" value="按下回车键触发"&g ...

  5. windows server 2016安装

    slmgr /skms kms.03k.org slmgr /ato slmgr /ipk WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY kms服务器: https://03k.org/ ...

  6. HYSBZ 2743 (树状数组) 采花

    题目:这里 题意: 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记, ...

  7. How to use BMW 35080 adapter with Yanhua Mini ACDP

    I have a question about Yanhua Mini ACDP + module 4 BMW 35080 read and write: Can the 35080 adapter ...

  8. 一键脚本清理DEBIAN系统无用组件 减少系统资源

    虽然如今我们选择服务器资源都比较多,以前我们看到很多128MB内存.甚至32MB内存的建站网站,感觉特别羡慕.其实这些也不是难事,相比之下,DEBIAN系统比CENTOS系统占用资源少,然后我们需要进 ...

  9. 选择文件,显示其路径在ListBox控件里

    private void btnSelect_Click(object sender, EventArgs e)        {            lbxFiles.Items.Clear(); ...

  10. Docker 镜像使用

    当运行容器是,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地Docker主机镜像 ...