码迷,mamicode.com
首页 > 编程语言 > 详细

Java面向对象概述

时间:2018-03-14 20:45:54      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:默认   pac   保存   过程   main   ted   实例变量   多个   rgs   

一、面向对象和面向过程

      面向过程:Procedure Oriented  是一种自顶向下的编程

      面向对象:Object Oriented  是将事物高度抽象化,必须先建立抽象模型(有属性和行为),之后直接使用模型就行 

例:人把大象装进冰箱
         面向过程:

                 1)打开冰箱

                 2)把大象放进去

                 3 )关闭冰箱门
         面向对象:
                  人{
                        打开(冰箱){

                               冰箱.开开()

                        }
                       操作(大象){

                              大象.进入(冰箱)

                       }
                      关闭(冰箱){

                              冰箱.合上()

                       }
                    }

               大象{
                     进入(冰箱){   }

                     }
               冰箱{
                     开开(){   }

                     合上(){   }

                    }

      面向对象的三大特征:封装、继承和多态

二、类的相关知识

      是对现实生活中一类具有共同特征的事物的抽象,比如所有的鸟都会飞,由属性(成员变量或Field)  &行为(成员方法或Method)组成对象是实际存在的该类事物的每个个体,是类的具体实例化。 

      成员变量和局部变量  

             在方法体外,类体内声明的变量称为成员变量,分为实例变量(不以static修饰)和类变量(以static修饰),实例变量存在于对象所在的堆内存中,可以有修饰符,如果在声明的时候,不显式的赋值,

那么不同数据类型会有不同的默认初始化值;在方法体内部声明的变量称为局部变量,分为形参(方法签名中定义的变量)、方法局部变量(在方法内定义)、代码块局部变量(在代码块内定义),

局部变量存在于栈内存中,没有修饰符,与所在的方法修饰符相同,一定要显式的赋值(局部变量没有默认初始化值)                                    

package com.yyx.pratice;

public class Person {
    // 成员变量
    private String name;
    private int age;

    // 成员方法
    public void eatFood() {
        //局部变量
        String foodName = "汉堡";
        System.out.println("我在吃" + foodName);
    }

    public static void main(String[] args) {
        Person person=new Person();
        person.eatFood();
    }
} 

四、类的内存分析

      所有的对象名称都在栈内存中保存,而对象的具体内容则保存在对应的堆内存中,必须使用new关键字才能开辟堆内存空间

类属于引用数据类型,引用数据类型就是指一段堆内存空间可以同时被多个栈内存指向

 技术分享图片

package com.yyx.pratice;

public class TestZoom {
    public static void main(String[] args) {
        Animal a1 = new Animal();
        a1.name = "花花";// 对象.属性直接赋值
        a1.setAge(3);// 封装思想
        System.out.println(a1.name + " " + a1.getAge());

        Animal a2=new Animal();
        System.out.println(a2.name + " " + a2.getAge());
        
        Animal a3=new Animal();
        a3=a1;
        System.out.println(a3.name + " " + a3.getAge());
    }
}

class Animal {
    String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}
运行结果:
花花 3
null 0
花花 3

 

Java面向对象概述

标签:默认   pac   保存   过程   main   ted   实例变量   多个   rgs   

原文地址:https://www.cnblogs.com/guhun/p/8547414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!