• [零基础学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、垃圾的产生。

     
  • 相关阅读:
    数据挖掘实践(20):算法基础(三)SVM(支持向量机)算法
    数据挖掘实践(19):算法基础(二)Logistic回归(逻辑斯蒂)算法
    数据挖掘实践(18):算法基础(一)线性回归
    Flink 源码(三): Flink Client 实现原理与源码解析(二)
    Flink 源码(二): Flink Client 实现原理与源码解析(一)
    GIT基础(九):Git 远程仓库(Github)
    GIT基础(八):查看提交历史
    GIT基础(七):分支管理
    GIT基础(六):Git 基本操作(一)
    rust thread
  • 原文地址:https://www.cnblogs.com/zhangsf/p/3330027.html
Copyright © 2020-2023  润新知