首页 > 代码库 > Java面向对象

Java面向对象

Java面向对象  
什么是对象  
世界万物皆为对象,凡是能看得见摸得着的所以东西都叫对象。对象是由属性和行为组成,属性是对象所具有的特征,而行为是对象可以做的动作。  
>例如生活中常见的事物:汽车。汽车的品牌型号、颜色、轴距、车身大小等等都是汽车的属性;汽车向前行驶、倒车、开门等动作都叫汽车的行为。
  
什么是类  
类:具有相同属性和行为一堆对象的集合或者叫抽象。  
>同学是一种类,是所有来学校上课同学的统称,集合。  
>程序员是一种类,是所有参与程序编写的员工的集合。  

类与对象的关系
类是对象的抽象,对象的类的实例。对象的每个属性被表示为类中的一个成员变量,对象的每个行为成为类中的一个方法。  
>例如同学是一个类,张三就是同学类的一个实例,是一个对象。张三的姓名、年龄、成绩等都是类的成员变量,而张三说话、行走、做作业等行为就是类的方法。  

代码实例:
 
    public class Student {  //定义一个名为Student的类
        //定义成员变量name、age、javaScore  
        String name;        
        int age;
        double javaScore;
        public void say(){  //定义一个名为say的方法
            int age = 10;   //定义局部变量
            System.out.println("该学生姓名是:"+name+"\n该学生年龄是:"+age+"\n该学生成绩是:"+javaScore);
        }
    }   
 
上述代码中需要注意以下几点:  
 
1. 类名首字要大写,不能是关键字;  
2. static尽量少用,不必要的麻烦;  
3. 成员变量又叫全局变量,可以不用赋初始值,为默认值;
4. 局部变量必须赋初始值,另外局部变量只在方法域中起作用。

类的实例化  
我们在创建了一个类之后,就需要对类进行实例化,使用类,如下面代码:  
  
    public static void main(String[] args) {
        Student stu = new Student();   //实例化一个Student类
        stu.name = "张三";             //给每一个属性赋值
        stu.age = 18;
        stu.javaScore = 95;
        stu.say();                     //调用类的方法
    }  
上面代码运行后的结果是:  
  
    该学生姓名是:张三  
    该学生年龄是:18   
    该学生成绩是:95.0  
如果是存储一组学生信息,则需要用数组对Student类进行实例化,如下面代码:  
   
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        Student[] stu = new Student[3];       //实例化长度为3的Student类数组,存储3名同学信息
        Student student = null;
        for (int i = 0; i < stu.length; i++) {
            student = new Student();
            System.out.println("请输入学生姓名:");
            String name = s.next();
            System.out.println("请输入学生成绩:");
            double score = s.nextDouble();
            student.name = name;
            student.javaScore = score;
            stu[i] = student;
        }
        for (Student ss : stu){
            System.out.println("学生姓名:" + ss.name + "   成绩是:" + ss.javaScore);
        }  
    }    
当我们输入“张三、100、李四、90、王二、80”运行结果如下:  
  
    学生姓名:张三   成绩是:100.0
    学生姓名:李四   成绩是:90.0
    学生姓名:王二   成绩是:80.0
栈、堆  
##栈与堆的区别  
1. 栈空间小,堆空间大;  
2. 所有的数据都是放在栈与堆里面的;  
3. 栈运行快,对运行慢;  
4. 所有的基本类型以及引用变量本身都放在栈中;  
5. 引用所指向的对象都放在堆中;  
6. 运行方法都放在栈中,其中main方法放在最底层;  
7. 入栈的方法都要被执行,并遵行先入后出的原则。

Java面向对象