面向对象 private this static 关键字

面向对象是基于面向过程来说的,在面向过程的编程语言中,我们解决一个问题需要考虑它一步一步如何实现,而在面向对象中,我们解决一个问题是通过找一个对象去解决这个问题,而实现这个功能的具体代码是封装在一个类中,面向对象技术是一种将数据抽象和信息隐藏的技术。

面向对象的特征:封装性、继承性、多态性。

是指具有相同属性和行为(方法)的对象的抽象。我们无法直接使用类的属性和功能,要使用一个类,必须将它实例化,实例化就是指创建该类的对象,使用关键字new。类是一个独立的单位,其内部包括成员变量,用于描述对象的属性,成员方法用来描述对象的行为。

例:定义一个Student类,

public class Student{
   public String name;
   public int age;
   public String school; //定义类的成员变量,成员变量在类中方法外,不赋值有默认值。
   public void study(){    //定义类的成员方法
          System.out.println("我是:"+name",今年:"+age"岁,在"+school+"上学。");
          }
       }

类是一个抽象概念,使用类之前,必须创建一个类的对象,然后通过类的对象去访问类的成员变量和成员方法,来实现程序功能。
创建对象: 类名 对象名=new 类名(),
调用成员变量:对象名.成员变量名

例:创建Student类的对象,访问Student类的name属性,study 方法

Student stu =new Student();   //此处声明一个Student类的对象stu,并用new实例化
stu.name ="张二狗";   //给Student类的name属性赋值。
stu.study();        //调用Student类的study()方法。

成员变量和局部变量的区别
a:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或方法声明上(形参)
b:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
c:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
d:初始化值不同
成员变量:有默认初始值
局部变量:没有默认初始值,必须定义,赋值,然后才能使用
注意:局部变量和成员变量名称可以一样,在方法中使用时,采用就近原则。

匿名对象:就是指对new出来的对象不取名字而直接使用。它与命名过后的的对象使用的区别是:我们使用命名的对象始终是这一个,而使用匿名对象,每new一次都是一个新的对象,它的地址没有被栈内存引用。

new teacher().show();
new teacher().show(); //每new一次就是一个新对象
int num=new teacher().num; //匿名对象调用成员变量。

private 关键字

private是一个权限修饰符,私有的,可以修饰成员变量,成员方法,被修饰的成员,只能在本类中访问,外界无法访问。如果外界要访问,需要给被修饰的成员添加set/get方法。
例:

public class Person{
        String name;
        private int age;
  public void setAge(int nianling){
             if (nianling>=0&&nianling<=100){
                        age=nianling;
               }else {  
                       System.out.println("设置的年龄不合理“)
                       }
               }
  public int getAge(){
              return age;
              }
}
//private 修饰的成员变量可以屏蔽掉 对象名.成员变量=值   这种赋值方式 ,通过set方法我们可以排除一些不合理的数据。

this关键字

this 代表本类的引用,谁调用我,我方法中的this就代表谁。在成员变量名和局部变量名同名时,我们使用this关键字。在静态方法和静态代码块中不能出现this。
例:

public class Teacher{ 
    private String name;
    private int age;
    public void setName(String name){
           this.name=name;   // teacher.name=name
           }
    public void setAge(int age){
            this.age=age;
            }
      }

static关键字

static表示静态的,可以修饰成员变量和成员方法,被static修饰的成员变量时共享变量,被类的所有对象共享,在访问的时候,我们直接用 类名.静态变量名 类名.静态方法名。被static修饰的成员,随类的加载而加载,它优先于对象的存在,所以我们不能在static修饰成员下用this 关键字(对象是后面有的,先有的不能访问后有的)。同理,静态方法只能访问静态方法。
例:

public class Person{
      public String name;
      public static String country="中国 ";
      }
     //我们 new 一个Person 他的 country 属性都是中国。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值