Java类(Class)和对象(Object)

Java


类(Class)和对象(Object)


1.类的组成

类的存放问题:一个源文件(*.java文件)内的内容是“一个public的类”+“0或多个不是public的类”
类的习惯命名:首字母大写的一个或多个单词(MyBlog)
类的主体:

    public class 类名 {
       属性(成员变量)  
       方法(成员方法)
    }   
2.使用自定义的类

类的声明:类名 类变量名
类的创建(实例化):类变量名=new 类名()
使用类的实例中的属性:类变量名.属性名

    public class Poi {
      String memberOne;
      String memberTwo;
    }  

    Poi machine;
    machine=new Poi();  
    machine.memberOne="JhonReese";
    machine.memberTwo="HaroldFinch";   
3.类和对象
  • 类是定义,是抽象,是一种数据类型;对象是个例,是具体,是具体的数据
  • 对象是按照类的定义创建出来的一个实例
4.源文件的存放
  • 默认情况下,类和类中使用的其他类的源文件要放在同一目录下
  • Java通过编译源文件(.java)产生类文件(.class)
  • java编译器会在找不到Class文件但可以找到源文件的情况下,自动对源文件进行编译并使用产生出来的Class文件
5.类、对象和引用

类的实例=对象
类的变量=引用
Java中的类型只有两种:基本数据类型和类(数组也是类)

    Poi machine;//声明一个类变量就是创建一个引用  

引用的作用:

  • 可以让这个引用指向一个Poi类的对象
  • 简单说就是引用给了对象一个名字,并借这个名字来操作对象
  • 引用的初始值为null,即不指向任何对象,无法使用这个引用进行操作
  • 可以在类中声明一个自己类型的引用,但要在声明时创建引用引起死循环

    public class Poi {
      String memberOne;
      String memberTwo;
      Poi ShawRoot; 
      //Poi ShawRoot=new Poi(); → StackOverflowError
    }  
    
6.点操作符的使用
    //Car类
    public class Car {
       int speed=60;
       String color="white";
       String name="Buick";
       String direction="London";
    }   

    //Driver类  
    public class Driver {
       String name;
       int age;
       Car car;
    }  
  • 多次使用点操作符

    public class Java123 {  
      public static void main(String[] args) {  
          Driver driver=new Driver();  
          driver.car=new Car();  
          System.out.println(driver.car.name);   
      }
    }
    
  • 只使用一次Car类的对象属性

    public class java123 {
      public static void main(String[] args) {
          String carName=(new Car()).name;  
          System.out.println(carName);  
      } 
    }  
    
  • 类的数组

    public class Java123 {  
      public static void main(String[] args) {   
        Motorcade groupCar=new Motorcade();  //创建Motorcade对象   
        groupCar.name="A Car Team";  
        int carNum=5;   
        groupCar.cars=new Car[5];//给groupCar指向的对象的cars属性赋值,此处new Car[5]仅是创建了一个引用数组,其每个引用的值都是null,此时并没有创建出Car类的对象
        String direction="London"; 
        for (int i=0;i<carNum;i++) {  
          groupCar.cars[i]=new Car();//创建Car类对象  
          groupCar.cars[i].name="Car"+(i+1);//给cars数组赋值 
          groupCar.cars[i].direction=direction;//给cars数组赋值
        }  
        System.out.println("车队的名称为:"+groupCar.name);    
        System.out.println("车队中各汽车名分别为:");  
        for (int i=0;i<carNum;i++) {  
          System.out.println(groupCar.cars[i].name);  
        }
      }
     }  
    
    
     输出:
    
    
     车队的名称为:A Car Team  
     车队中各汽车名分别为:  
     Car1
     Car2
     Car3
     Car4
     Car5
    
Share on : Twitter, Facebook or Google+