zoukankan      html  css  js  c++  java
  • 静态类及实例类

    1.类中包含:字段;属性和方法。

    2.面向对象意在:写出通用的代码,屏蔽差异
    对象必须是看得见,摸得着的具体物体。--没有具体,则不能成为对象
    万物皆对象

    我们把具有相同属性和相同方法的对象抽象为类。
    对象是根据类创建出来的
    实例类是不占内存的,对象要占内存

    3.属性的作用就是保护字段,对字段的赋值和取值进行限定。
    4.属性的本质:及两个方法:即get,set。既有 get,又有set,称为可读可写属性。有的时候只有get或set。

    5.当创建好类的对象后,需要给这个对象的每个属性进行赋值, 称为对象初始化。


    6.静态和非静态的区别:实例类不占内存,实例化对象时才会在堆上分配内存。
    静态类在整个项目中实现资源共享,静态类本身就在静态存储空降占据一块内存。
    1)在非静态类中,即可以有静态成员,也可以有非静态成员(实例成员)。
    2)调用非静态成员,对象.实例成员名。

    3)在调用静态成员的时候,类名.静态成员名。

    总结:静态成员必须使用类名去调用,非静态成员使用对象名去调用。

    1)静态方法中只能使用静态成员,不能使用实例成员。
    2)实例方法中既可以使用静态成员,也可以使用非静态成员。
    3)静态类中只能有静态成员,不能有非静态成员
    4)静态类不能实例化对象。因为静态类只能包含静态成员,而静态成员只能用类名调用,不能使用对象名调用,故不需要实例化静态类,也不能将静态类对象实例化。


    7.静态类和实例类的使用
    1)如果你想要你 的类当做一个“工具类”去使用,这个时候可以考虑将类写成静态类。
    2)实例类不占内存,实例化对象时才会在堆上分配内存。
    3)静态类在整个项目中实现资源共享,静态类本身就在静态存储空间占据一块内存。(堆,栈,静态存储空间)
    4)只有应用程序全部结束之后,静态类才释放资源。

    8.构造函数
    通过构造函数给类的对象属性初始化,通过类属性给类中的字段初始化。

    作用:帮助我们初始化对象(给对象的每个属性一次赋值)
    1)构造函数没有返回值,连void也不能写
    2)构造函数名和类名必须一样。
    3)构造函数的访问修饰符必须是public,否则不能调到构造函数进行初始化。
    4)创建对象的时候,会自动的调用构造函数。
    **5)类中会有一个默认的无参数的构造函数,若在定义构造函数(无论是否有参数),则创建对象是,默认的无参的构造函数都不能被调用。

    9.new关键字的作用
    person zsPerson = new person();

    1)在内存中开辟一块空间
    2)在开辟的空间中创建对象
    3)调用对象的构造函数进行初始化对象。

    :base()关键字是在父类中申明了有参数构造函数,创建子类对象时,不能调用父类中默认无参构造函数,故需要在子类构造函数中使用:base()显示调用父类中的有参构造函数,进行初始化。

    10.this关键字
    作用:
    1)代表当前对象
    2)在同一个类中显示的调用构造函数 :this()
    主要是作用与同一个类中,一个构造函数显示调用另一个构造函数。
     public Student(string name, char gender, int age, int chinese, int match, int english)
            {
                Name = name;
                Gender = gender;
                Age = age;
                Chinese = chinese;
                Match = match;
                English = english;
            }
            //在下面这个构造函数中调用上面这个构造函数实现对象实例化public Student(string name , int chinese ,int match , int english):this(name ,'女' ,12 ,chinese ,match ,english)
            {     
            }

    11.析构函数在程序执行结束的时候,调用析构函数进行释放内存。

    6.静态和非静态的区别:实例类不占内存,实例化对象时才会在堆上分配内存。
    静态类在整个项目中实现资源共享,静态类本身就在静态存储空降占据一块内存。
    1)在非静态类中,即可以有静态成员,也可以有非静态成员(实例成员)。
    2)调用非静态成员,对象.实例成员名。

    3)在调用静态成员的时候,类名.静态成员名。

    总结:静态成员必须使用类名去调用,非静态成员使用对象名去调用。

    1)静态方法中只能使用静态成员,不能使用实例成员。
    2)实例方法中既可以使用静态成员,也可以使用非静态成员。
    3)静态类中只能有静态成员,不能有非静态成员
    4)静态类不能实例化对象。因为静态类只能包含静态成员,而静态成员只能用类名调用,不能使用对象名调用,故不需要实例化静态类,也不能将静态类对象实例化。


    7.静态类和实例类的使用
    1)如果你想要你 的类当做一个“工具类”去使用,这个时候可以考虑将类写成静态类。
    2)实例类不占内存,实例化对象时才会在堆上分配内存。
    3)静态类在整个项目中实现资源共享,静态类本身就在静态存储空降占据一块内存。(堆,栈,静态存储空间)
    4)只有应用程序全部结束之后,静态类才释放资源。

    8.构造函数
    通过构造函数给类的对象属性初始化,通过类属性给类中的字段初始化。

    作用:帮助我们初始化对象(给对象的每个属性一次赋值)
    1)构造函数没有返回值,连void也不能写
    2)构造函数名和类名必须一样。
    3)构造函数的访问修饰符必须是public,否则不能调到构造函数进行初始化。
    4)创建对象的时候,会自动的调用构造函数。
    **5)类中会有一个默认的无参数的构造函数,若在定义构造函数(无论是否有参数),则创建对象是,默认的无参的构造函数都不能被调用。

    9.静态类中只能有静态成员,不能有非静态成员;静态类中的构造函数不能加访问修饰符。静态类中的构造函数在静态类调用其中的成员之前,就已经初始化了,而非静态类,则是在实例化对象的时候调用构造函数。不管静态类调用几次其中的成员,都只执行一次构造函数的调用。

  • 相关阅读:
    fn project 试用之后的几个问题的解答
    fn project 扩展
    fn project 生产环境使用
    fn project 对象模型
    fn project AWS Lambda 格式 functions
    fn project 打包Function
    fn project Function files 说明
    fn project hot functions 说明
    fn project k8s 集成
    fn project 私有镜像发布
  • 原文地址:https://www.cnblogs.com/jefy/p/9187744.html
Copyright © 2011-2022 走看看