zoukankan      html  css  js  c++  java
  • [零基础学JAVA]Java SE面向对象部分.面向对象基础(01)

    在对象的内存分配上与c++有区别:

    C++:
    #include <iostream>
    #include <string>

    class Person{
        private:
            std::string name;
            int age;

        public:
            void  setAge(int age){
                this->age = age;
            }
            
            void setName(std::string name){
                this->name = name;
            }

            int getAge(){
                return this->age;
            }

            std::string getName(){
                return this->name;
            }
    };


    int main(){


        Person per;

        per.setAge(10);

        std::cout<<per.getAge()<<std::endl;

        return 0;
    }
    java:
    class Person{
        private int age;
        private String name;


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

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

        int getAge(){
            return this.age;
        }

        String getName(){
            return this.name;
        }
    }

    public class ObjectTest{

        public static void main(String args[]){

            Person per = null;
            per = new Person();

            per.setAge(10);
            
            System.out.println(per.getAge());

        }
    }
     
    程序详解:
    1、定义好一个类
    2、为定义好的类实例化对象
    · 声明对象:在栈内存中开辟空间
    · 实例化对象(为一个对象开辟空间),使用关键字new完成。只要有new关键字就表示在堆内存中开辟空间,在堆内存中保存各个对象的属性。而方法是保存在全局代码区里面滴。
    image
    3、通过对象.属性为类中的属性赋值,通过对象.方法()调用类中的方法。
    image
    我们发现,如果我们没有对对象开辟堆内存空间的话,程序执行会报NullPointerException错哈~,如果我们发现出现这个错误,我们排错时就检查对象有没被实例化。
    image
    NullPointerException : 空指向异常,只要是没有堆内存引用的对象,直接调用对象访问属性或方法的时候都会出现空指向异常。此异常会伴随你的开发人生。

    总结:

    1、类与对象的关系

    java:

     一个文件中只能有一个public类,此对类名要跟文件名一致。

    默认类中属性public;无析构函数。

    C++:Struct 默认public,Class默认private;

    · 类是对象的模板,对象是类的一个实例
    2、对象的创建

    c++:可栈,可堆,带指针!

    java:无指针,栈中分配内存无效,必须要在堆中分配

    ·声明对象:在栈内存中声明;类名称 对象名称 = null ;
    ·实例化对象:使用new在堆内存中开辟空间,保存属性;对象名称 = new 类名称() ;
    3、对象的引用传递
    4、垃圾的产生。

     
  • 相关阅读:
    vue项目中使用mockjs模拟接口返回数据
    Node.js:Express 框架
    Node.js:Web模块、文件系统
    Node.js:get/post请求、全局对象、工具模块
    Node.js:常用工具、路由
    echarts使用记录(二)legend翻页,事件,数据集,设置y轴最大/小值,让series图形从右侧出往左移动
    Node.js:模块系统、函数
    ElementUI表单验证使用
    高级程序员职责
    Git:fatal: The remote end hung up unexpectedly
  • 原文地址:https://www.cnblogs.com/zhangsf/p/3330027.html
Copyright © 2011-2022 走看看