/*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog {                 //创建Dog类 String name; int health; int love; String sex; /* 无参方法(一般没有构造方法,系统默认无参方法, 同时可以直接在上面属性声明后面赋值,如果没有赋值,系统自动输入默认值) 但是加有参方法时,建议一定要把无参加上 修饰符+类名()…
在网上看了一个这样的题目 public class StaticTest { public static void main(String[] args) { staticFunction(); } static StaticTest st = new StaticTest(); static { System.out.println("1"); } { System.out.println("2"); } StaticTest() { System.out.pri…
readdir函数: struct dirent *readdir(DIR *dirp); The  data  returned by readdir() may be overwritten by subsequent calls to readdir() for the same directory stream. 成功时,readdir() 返回指向 dirent 结构的指针.(这个结构是静态分配的:不要试图去free(3) 它.)如果到达了上当结尾,NULL 被返回并保持ERRNO不变…
一.构造代码块: 作用:给对象进行初始化. 特点:对象一经运行就执行(与变量声明时赋初值同级别,此处注意 非法前向引用) 优先于构造函数的执行. 与构造函数的区别: 构造代码块是给所有对象统一初始化. 一般给所有对象的共性属性的初始化. 构造函数是给对应对象进行初始化. 二.this关键字. 作用:指向this所在函数所属的对象 (哪个对象调用了this所在的方法,this就指向哪个对象). 应用:当在定义类中的功能时,该函数的内部要用到调用该函数的对象时,便用this来表示这个对象. (当以第…
测试代码 public class SingleTest { public static String v = "StaticValue"; static { System.out.println("static静态变量:" + v); System.out.println("static静态块"); } { System.out.println("构造块"); } public SingleTest() { System.o…
//据说这是一道阿里巴巴面试题,先以这道题为例分析下 public class Text { public static int k = 0; public static Text t1 = new Text("t1"); public static Text t2 = new Text("t2"); public static int i = print("i"); public static int n = 99; public int j…
转载自http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法.要实现这样的效果,只需要在类中定义的方法前加上static关键字.例如: public static int maximum(int n1,int n2) 使用类的静态方法时,注意: a在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中…
一个类中执行顺序: 静态变量静态代码块代码块构造方法 子类和父类执行顺序: 父类静态变量父类静态代码块子类静态变量子类静态代码块父类代码块父类构造方法子类代码块子类构造方法 直接看代码,一目了然. public class Test { public static void main(String[] args) { new A(); /* 结果: * A静态变量 A静态代码块 A代码块 A构造方法 * */ new B(); /* * 结果: * A静态变量 A静态代码块 B静态变量 B静态代…
很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量->子类静态变量初始化块->父类变量初始化->父类变量初始化块->父类构造方法->子类变量初始化->子类变量初始化块->子类构造方法 --------------------------------------------------我是copy分割线---------…
    在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下:     type identifier [ = value][, identifier [= value] ...] ;     格式说明:type为Java数据类型.identifier是变量名.可以使用逗号隔开来声明多个同类型变量.以下列出了一些变量的声明实例.注意有些包含了初始化过程: int a, b, c;         // 声明三个int型整数:a. b.cint d = 3, e = 4, f =…
PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失.也就是说,在下一次执行这个函数时,变量仍然会记得原来的值.要将某个变量定义为静态的,只需要在变量前加上static关键字即可. function testing() { static $a = 1; $a *= 2; echo…
静态变量 一.静态变量 static关键字 static int i; 二.静态变量的运用 .计算函数被调用次数 .返回指针 第45课中有这么一段 int* square3(int *x) { int a=*x * *x; return &a; //危险 用自动变量 } #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> void test() {…
// // ReViewClass.h // hellowWorld // 本类是oc复习练手类 // Created by hongtao on 2018/3/26. // Copyright © 2018年 hongtao. All rights reserved. // #import <Foundation/Foundation.h> /** OC常量: 头文件里声明常量: extern NSString * const MyOwnConstant; extern NSString *…
1,静态变量:所有对象共享的变量成为静态变量.静态变量类似于全局变量,不过全局变量破坏对象的封装性,因此其对应于面向过程:静态变量对应于面向对象. 2,全局变量,全局变量的使用实例如下,声明全局变量时候 global $global_nums:在局部函数中使用全局变量时候,需要先声明下全局变量再使用,声明时候系统会在栈区创建一个变量,这变量存放地址,指向全局区的全局变量. <?php /** * Created by PhpStorm. * User: usa007lhy * Date: 201…
C语言中,在函数内部可以定义static类型的变量,这个变量是属于这个函数的全局对象.在Python中也可以实现这样的机制. def f(): if not hasattr(f, 'x'): f.x = 0 print(f.x) f.x+=1 f()#输出1 f()#输出2 类中可以有函数,类中可以有类,函数中可以有类,函数中也可以有函数. 函数中的类是每次都要加载的. def f(): class haha: cnt=1 def __init__(self): print("haha"…
Drupal许多的函数中都使用了静态变量.按照通常的用法,静态变量的使用应该是这样的: function drupal_set_title($title = NULL) { static $stored_title; if (isset($title)) { $stored_title = $title; } return $stored_title; } 但是Drupal使用的方式有些不同.主要的考量应该是这样:可能会有几十上百个函数中使用了静态变量,Drupal需要在某一时刻对这些静态变量都…
如果我想知道函数被调用了多少次怎么办?在没有学习静态变量的时候,我们没有好的办法来解决. 静态变量的特点是:声明一个静态变量,第二次调用函数的时候,静态变量不会再初始化变量,会在原值的基础上读取执行. 有了这个特点,我们就可以实现,最开始我们的提问:函数调用词数的统计. 先执行10次demo()函数试试,再执行10次test()函数试试:直线电机滑台 <?php function demo() {    $a = 0;    echo $a;    $a++; } function test()…
类常量 <?php class myuser { ;//定义的常量不带$符号,常量之前没有访问修饰符,常量之前没有修饰符号 public function monolog() { echo "今年".self::age,"岁了,想做程序员,还有戏么"."\n"; echo "什么?你已经".$this::age."了,都?"."\n"; } } $dy = new myuser()…
1.this关键字 this的本质就是“创建好的对象的地址”!  由于在构造方法调用前,对象已经创建.因此,在构造方法中也可以使用this代表“当前对象” [用法]   1.  在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对象.构造方法中,this总是指向正要初始化的对象.            2. 使用this关键字调用重载的构造方法,避免相同的初始化代码.但只能在构造方法中用,并且必须位于构造方法的第一句.               3.…
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是类 某一特定类型的所有对象都可以接收相同的消息,因为同一类事物有共同的特性 面向对象开发 •就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 •其实就是在管理和维护对象之间的关系. 面向对象特征 •封装(encapsulation) •继承(inheritance) •多态(polymo…
一.静态代码块 1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块: public class CodeBlock{ static{ System.out.println("静态代码块"); } } 2.执行时机 静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数.如果一个类中有多个静态代码块,就会按照书写的顺序执行. 3.静态代码块的作用: 一般情况下,如果有些代码需要在项目启动的时候执行,这时就需要静态代码快,比…
1.当一个类被第一次使用时,它需要被类加载器加载,而加载过程涉及以下两点: (1)在加载一个类时,如果它的父类还未被加载,那么其父类必须先被加载: (2)当类加载到内存之后,按照在代码中的出现顺序执行它的静态变量和静态块(如果有的话). 2.调用一个类的构造函数时,调用过程涉及以下三点: (1)调用父类的构造函数: (2)按照在代码中出现顺序初始化实例数据域和实行实例块: (3)执行其构造函数体. 总结: JAVA类首次装入时(包括类点静态方法和点静态变量或者new一个对象点实例方法和点实例变量…
直接上代码: 代码1: public class ConstroctTest { private static ConstroctTest test = new ConstroctTest(); //静态变量sta1 未赋予初始值 public static int sta1; //静态变量sta1 赋予初始值20 public static int sta2 = 20; //构造方法中对于静态变量赋值 private ConstroctTest() { sta1 ++ ; sta2 ++ ;…
转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普通代码块:就是类中方法的方法体   public void xxx(){       //code   } 2.构造块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对象时都会被调用,并且优先于类构造函数执行. 构造块中定义的变量是局部变量.  {      //code   } 3.…
简单了解一下java虚拟机--jvm几个内存区域: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域, 常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息. 堆区:用于存放类的对象实例. 栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量.方法出口等信息. 当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法调用完成时,栈帧消失,如果方法中调用了其他方法,则…
static block and non-static block(constructor block) [toc] 想来想去,先来一题比较好 public class Foo { public static void main(String[] args) { Baz.testAsserts(); Baz.testAsserts(); // Will execute after Baz is initialized. } } class Bar { static { Baz.testAsser…
  我们知道类的生命周期分为装载.连接.初始化.使用和卸载的五个过程.其中静态代码在类的初始化阶段被初始化. 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化. 静态变量 可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象. 静态变量有两种情况: 静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例就可以直接使用 静态变量是一个引用.这种情况比较特殊,主要问题是由于静态变量是一个对象的引用,那么必须初始化这个对象之后才能将引用指向它. 因此如果…
在研究单例设计模式的时候,用到了静态变量和静态方法的内容,出于兴趣,这里简单了解一下这四个模块在类初始化的时候的加载顺序. 经过研究发现,它们的加载顺序为: 1.非静态代码块 2.静态变量或者静态代码块…
实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态代码块与父类静态变量(取决于代码书写顺序) 2.子类静态代码块与子类静态变量(取决于代码书写顺序) 3.父类实例变量与父类代码块(取决于代码书写顺序) 4.父类构造函数 5.子类实例变量与父类代码块(取决于代码书写顺序) 6.子类构造函数 在JVM加载完类以后,类在被使用的时候初始化,静态部分只在类…
封装: 1.目的:保证对象中的实例变量无法随意修改/访问,只能通过我们自己设定的入口,出口(set / get)来间接操作:屏蔽类中复杂的结构,使我们程序员在主方法中关联对象写代码时,思路/代码格式更加清晰: 2.操作:将某些属性私有化(private修饰),再声明相应的 set ,get 方法,这样我们就可以通过 set / get 方法来 修改 / 访问 相应的私有属性了: 嘴上说不如举栗子: class tool{ private int a; private String b; priv…