静态意味着什么?
我知道公共意味着它可以从课外访问,而私有只能从课程内部访问
答案 0 :(得分:38)
静态意味着可以在不实例化类的情况下访问它。这对常数很有用。
静态方法不需要对对象的状态产生影响。除参数外,它们还可以包含局部变量。
答案 1 :(得分:32)
公开:可以随处访问公开声明的项目。
受保护:受保护限制对继承和父级的访问 类(以及定义项的类)。
私有:专用限制仅对定义的类的可见性 该项目。
static :静态变量仅存在于本地函数范围内, 但是当程序执行离开这个范围时,它不会失去它的价值。
final :Final关键字会阻止子类覆盖a 方法通过在final中加上前缀。如果班级本身是 被定义为最终然后它不能被扩展。
瞬态:瞬态变量是一个可能不是的变量 被序列化。
volatile :可能被多个并发修改的变量 线程应该声明为volatile。声明变量的变量 将不会被编译器优化,因为它们的值可以更改为 任何时候。
答案 2 :(得分:15)
来自http://php.net/manual/en/language.oop5.static.php
声明类属性或方法 因为静态使它们可以访问 无需实例化 班级。声明为的财产 静态无法访问 实例化的类对象(尽管是 静态方法可以)。
答案 3 :(得分:4)
一些例子...... 当使用static关键字时,我们不能使用$ this ..
class Foo{
private $foo='private';
private function priv_func(){
echo 'priv_method';
}
public static function ger(){
echo $this->foo;
$this->priv_func();
}
}
//class Zero extends Foo{};
$obj=new Foo;
$obj->ger();
致命错误:在
中不在对象上下文中时使用$ this
答案 4 :(得分:0)
示例:
public class Methods_Test1
{
public static void Display(String Name)
{
System.out.println("Hello There " + Name);
System.out.println("I am from Display method");
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter name");
String name = sc.next();
Obj.Display(name);
}
可以作为静态方法访问的公共静态void Display(String name)方法,可以在其自己的类中访问,而无需创建该类的对象,而对于外部类,该方法的行为与公共相同,可以通过创建对象来访问