面向对象二

一、this 关键字
①通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题。

例:

   class Person {
            
    int age;
    
   public Person(int age) {
   
 this.age=age;

public int getAge() {

return this.age;

      }
}

②通过this关键字调用成员方法,
具体示例代码如下:
class Person
public void openMouth() {
·
·
·
}
public void speak() {
this. openMouth() ;
}
}

二、static 关键字
1.静态变量

在一个Java类中,可以使用static关键字来修饰成员变量,该变量被称作静态变量。静态变量被所有实例共享,可以使用“类名.变量名”的形式来访问。

例:

 class Student {

 static String schoolName;      //定义静态变量schoolName

             }
 public class Example12 {

 public static void main(String[] args) {

Student stul=new Student() ;    //创建学生对象

Student stu2=new Student() ;

Student. schoolName= "传智播客";      //为静 态变量赋值

System.out .printIn ("我的学校是"+ stul .schoolName);      //打印第一一个学生对象的学校

System.out .printIn("我的学校是"+ stu2.schoolName);        //打印第二个学生对象的学校

                                 }

             }

2.静态方法

只需要在类中定义的方法前加上“static”关键字即可,这种方法称为静态方法。

例:

class   Person {

public static void sayHello() {      //定义静态方法

System .out.print1o("he1lo");

    }

class Example13 {

public static void main(stringl] args) {

Person. sayHel16() ;  //调用静态方法

    }

}

3.静态代码块

 在Java类中,使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块。当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次。在程序中,通常会使用静态代码块来对类的成员变量进行初始化。

例题:静态代码块的使用

 class Example14 {    //静态代码块
 static {
System.out .printin("测试类的静态代码块执行了");
         }

public static void main(String[] args) {     //下面的代码创建了两个Person对象
Person p1=new Person();

Person p2=new Person();

        }
 }
 class Person {
 
static String country;     //下面是一个静态代码块

  static {
  
country= "china";

System .out .println ("Person类中的静态代码块执行了");
  
             }
        
    }

4、单例模式
单例模式是Java中的种设计模式,它是指在设计 一个类时,需要保证在整个程序运行期间针对该类只存在一个实例对象。

例题:实现单例模式

 class Single {   //自己创建一个对象
prinate staLte single ENSTANCE=  new  Single ();

 public  Single()  {}  // 私有化构造方法
 
public static Single   getInstance() {     / /提供返回该对象的静态方法

 return INSTANCE;
  
         }

 }

例题中的Singles类就实现了单例模式,它具有如下特点:

  • 类的构造方法使用private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象了。

  • 在类的内部创建一个该类的实例对象,并使用静态变量INSTANCE引用该对象,由于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员。

  • 为了让类的外部能够获得类的实例对象,需要定义一个静态方法getInstance(),用于返回该类实例INSTANCE.由于方法是静态的,外界可以通过“类名.方法名"的方式来访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值