zoukankan      html  css  js  c++  java
  • 大数据之路week01--自学之面向对象java(static,this指针(初稿))

     

    函数的重载 返回值不一样会报错

     

    java中,如果自己定义了构造函数的话,它就不会给你默认一个无参函数

     

    如果一个属性,只进行定义,不初始化,自动补0,
    如果是一个布尔属性,默认是false
    但是如果一个局部变量只定义不进行初始化,它就是个垃圾值,报错!

     

    Java把内存划分为4个部分 1. 代码区 1、栈区 3、堆区 4、静态区域
    1、栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源
    2、堆区(heapsegment)—一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指向这个对象就回收
    3、静态区(datasegment)—存放全局变量,静态变量和字符串常量,不释放
    4、代码区(codesegment)—存放程序中方法的二进制代码,而且是多个对象共享一个代码空间区域

     

    this指针:(实际上,每个非static方法中都隐含这一个this指针
    指向当前正在调用该方法的对象。)

     


    static(静态的):
    如果在一个属性的前面加上static ,那么这个属性就不是某一个对象的了,而是N个对象共用的了。在静态区存放,不释放。
    static属性变量是属于类本身的,没有对象我们仍然可以通过类名的方式进行访问该类内部的static属性。(static方法也可以)
    (注意:1、类可以直接调用,实例化出来的对象当然也可以进行调用。
    理解:模型都可以,模型造的对象当然可以。
    2、加上static的确是属于类本身的,但是要去访问它必须控制符是非私有的,如果控制符是私有的,则不能直接通过类名进行访问!!
    理解:private static void a(){} private static int i;都是不可以直接通过类名进行访问,因为前面的控制符是private
    3、非静态的方法可以访问静态成员,反之不可以。非私有的静态成员才能通过类名直接调用。
    理解:静态的方法和静态的变量属于类本身,不是静态的方法必须通过对象进行调用,在实例化对象的同时也包含了静态的方法,当然可以。
    反之不可以。)
    class A{
    public static int i;
    }

     

    class M{
    public static void main(String[] args){
    System.out.printf("%d ",A.i);
    }
    }

  • 相关阅读:
    mysql官网下载链接——绿色版&安装版
    eclipse中去掉警告提示
    java用servlet、cookie实现一个阅读记录
    eclipse中的错误解决——Servlet cannot be resolved to a type
    eclipse——jsp字体设置
    eclipse——添加Tomcat7.0服务器
    eclipse中的错误解决——The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    eclipse——JavaEE插件
    OpenMP用法大全
    __new__ __init__区别
  • 原文地址:https://www.cnblogs.com/wyh-study/p/11827941.html
Copyright © 2011-2022 走看看