Java 对象和类

1.Java作为一种面向对象语言,支持以下基本概念:
(1)多态
(2)继承
(3)封装
(4)抽象
(5)类
1.类是一个模板,描述一类对象的行为和状态
Java中的类可以看成是创建java对象的模板,简单的举例对类的定义

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

          }
          void hungry(){   void:标记不返回任何值

          }
          void sleeping(){

          }
        }

2.一个类可以包含以下类型变量:
(1)局部变量:在方法的,构造方法或者语句模块定义的变量被成为局部变量,变量声明和初始化都是在方法中,
方法结束后,变量就会自动销毁
(2)成员变量:成员变量是定义在类中,方法体之外的变量,这种变量在创建对象的时候实例化,成员变量可以被
类中方法、构造方法和特定类的语句块访问
(3)类变量: 类变量也声明在类中,方法体之外,但是必须声明static类型
总结: 一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类的方法
(6)对象
对象是类的一个实例,有状态和行为,
举例:一条小狗是一个对象,
状态有颜色,名字,品种,
行为:叫,吃等
Java的对象也有状态和行为,软件对象的状态就是属性,行为是通过方法体现 ,
在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成
(7)实例
(8)方法
(9)消息解析
二、构造方法
每个类都有构造方法,如果没有显示地为类定义构造方法,Java编译器会为该类提供一个默认的构造方法,在创建一个对象的
时候,至少要调用一个构造方法,构造方法的名称必须与类同名,一个类可以有多个构造方法
例子:

      public class Puppy{  类
        public Puppy(){ 构造方法

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

三、创建对象
1.对象是根据类创建的,在Java中,使用new关键字来创建一个新的对象,创建对象需要三步
(1).声明:声明是一个对象,包括对象名字和对象类型
(2).实例化:使用关键字new创建一个对象
(3).初始化:使用new创建对象时,会调用构造方法初始化对象
例子:

    public class Puppy{
      public Puppy (String name){
        System.out.printIn("Passed Name is :" + name );
      }
      public static void main(String []args){
        //创建一个新的Puppy对象
        Puppy myPuppy = new Puppy("tonny");
      }

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

        ObjectReference = new Constructor()
       访问其中的变量
        ObjectReference.variableName;
       访问类中的方法

3.实例
如何访问实例变量和调用成员方法

       public class Puppy{
        int puppyAge;
        public Puppy(String name){
          System.out.printIn("Passed Name is : "+ name)
        }
        public void setAge ( int age ){
          puppyAge = age;
        }
        public int getAge ( ){
          System.out.printIn("Puppy' age is :"+ puppyAge);
          return puppyAge;
        }
        public static void main(String []args){
        //创建对像
          Puppy myPuppy = new Puppy( "tommy" );
        //通过方法来设定age
          myPuppy.setAge(2);
        //调用另一个方法获取age
          myPuppy.getAge();
        //也可以像下面这样访问成员变量
          System.out.printIn("Variable Value : " + myPuppy.puppyAge); 
        }
       }
        ObjectReference.MethodName();

4.Java包、Import语句
例子:
在该例子中,我们创建两个类:Employee和EmployeeTest。
首先打开文本编辑器,把下面的代码粘贴进去。注意将文件保存为Employee.java。
Employee类有四个成员变量:name、age、designation和salary。该类显式声明了一个构造方法,该方法只有一个参数。

          import java.jo.*;
          public class Employee{
            String name;
            int    age;
            String desigination;
            double salary;
            //Employee 类的构造器
            public Employee( String name ){
              this.namr = name;
            }
            //设置designation的值
            public void empDesignation ( String empDesig){
              desigination = empDesig;
            }
            //设置salary的值
            public void empSalary( double empSalary ){
              salary = empSalary;
            }
            //打印信息
              public void printEmployee(){
                System.out.println("Name:"+ name );
                System.out.println("Age:" + age );
                System.out.println("Designation:" + designation );
                System.out.println("Salary:" + salary);
              }
          }

程序都是从main方法执行,为了能够运行这个程序,必须包含main方法并且创建一个实例对象,
下面给出EmpoyeeTest类,这个类实例化2个Employee ,并且调用方法设置变量的值。

          import java.jo.*;
          public class EmployeeTest{
            public static void main( String args[]){
            //使用构造器创建连个对象
                Employee empOne = new Employee ("James Smith");
                Employee empTwo = new Employee ( "Mary Anne");
                //调用这两个对象的成员方法
                empOne.empAge(26);
                empOne.empDesignation("Senior Software Engineer");
                empOne.empSalary(1000);
                empOne.printEmployee();

                empTwo.empAge(21);
                empTwo.empDesignation("Software Engineer");
                empTwo.empSalary(500);
                empTwo.printEmployee();
            }
          }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容