面向对象 static

static

static变量

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static成员变量的初始化顺序按照定义的顺序进行初始化。

static方法
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。举个简单的例子:

class MyObject{

priative static String strl-"staticProperty";

priative static str2-"property" ;

public MyObject{

}

public void print1(){

System.out.println(str1);

System.out.println(str2);

print2();

}

}

static代码
当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次。
使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块为静态代码块。

单列模式
类的构造方法使用private修饰,声明为私有,这样就不能被在类的外部使用new关键字来创建实例对象了;
在类的内部创建一个该类的实例对象,并使用静态变量instance引用该对象,由于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员;
为了让类外部能够获得类的实例对象,需要定义一个静态方法getInstance(),用于返回该类实例instance,由于方法是静态的,外界可以通过类名.方法名的方式来访问。

时间: 2024-12-15 21:29:07

面向对象 static的相关文章

黑马程序员——面向对象(static静态应用)-第13天

----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 面向对象(static静态应用) 1.面向对象(static静态什么时候使用) 静态什么时候使用 要从两方面下手: 它修饰的内容有成员变量和函数. 什么时候定义静态变量? 当对象出现共享数据时(共享值,name是共享变量,country中"CN"是值,数据),该数据被静态修饰. 对象中的特有数据要定义成非静态,存在堆内存中. 什么时候定义静态函数? 当功能内部没有

java学习笔记之面向对象static,final关键字

java学习笔记之面向对象static,final关键字 一.static关键字 1.概述: static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中. 2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值) /* 1.可以通过对象直接使用,不推荐使用 2.通过类名调用静态成员 类名.静态成员变量 类名.静态成员方法 */ 3.static的特点 /* 1.在同一个类中,静态成员只能访问静态成员,非静

3.03_面向对象(static关键字及内存图)

* A:案例演示     * 通过一个案例引入static关键字.     * 人类:Person.每个人都有国籍,中国. * B:画图演示     * 带有static的内存图 lass Demo1_Static { public static void main(String[] args) { /*Person p1 = new Person();  //创建对象 p1.name = "苍老师";                   //调用姓名属性并赋值 p1.country

52 面向对象static关键字的特点

static 关键字的特点 随着类的加载而加载 优先于对象存在 被类的所有对象共享 什么时候用Static静态? 如果某个成员变量是被所有对象共享的,那么它就应该被定义为静态的 共性用静态; 可以通过类名调用 其实它本身也可以通过对象名调用. 推荐使用类名调用 静态修饰的内容一般称为 与类相关的,类成员 static静态使用内存图 static 的注意事项 在静态方法中是没有this关键字的 如何理解 静态是随着类的加载而加载的 静态比对象优先存在 静态方法只能访问静态成员变量和静态的成员方法

面向对象 static abstract interface 等知识点

作用:大型公司制作大型软件//普通成员 之前都是//静态成员##################################################################静态变量Class Ren{ public $name; public static $sex; 静态成员属于类 普通方法无法调用 function say() { echo self::sex !!静态成员调用方法 Ren::$sex; } static function say() { !!静态的方法不

面向对象static静态的属性和方法的调用

<?php header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public $height = 180; static public function tell(){ echo self::$name;//静态方法调用静态属性,使用self关键词 //echo $this->height;//错.静态方法不能调用非静态属性 //

PHP面向对象static和const的两段代码示例

<?PHP class myclass{ static $count;                                     //静态化类属性 function __construct(){ self::$count++;                                  //static声明的部分用self访问 } static function getcount(){ return self::$count; } } myclass::$count=0;  

Java基础语法 - 面向对象 - static 关键字

使用static关键字修饰的变量.常量和方法分别被称作静态变量.静态常量和静态方法,也被称作类的静态成员 静态变量 使用static修饰过的类变量称为静态变量 该变量需要使用类名.变量名进行调用,不能使用对象名/this进行调用 在类方法中不能定义与静态变量同名的局部变量 1 package mingri.chapter_6; 2 3 public class Pool { 4 5 public static int water = 0; // 定义一个静态变量 6 7 public void

面向对象学习

###07.01_面向对象(构造方法Constructor概述和格式)(掌握) A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型,连void都没有 c:没有具体的返回值return; ###07.02_面向对象(构造方法的重载及注意事项)(掌握) A:案例演示 构造方法的重载 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表 B:构造方法注意事项 a:如果我们没有给出构造方法,系统将