java基础 第八章(静态成员的调用 、 封装)

一、静态成员的两种调用。

     1. 对象.成员变量 = 值;

         例:stu1 . name = "java";

     2.类名.成员方式;   // 不需要new就可以直接用这种方式调用,调用方法也可以(Student . getNum())

         例:Student .count++;

         注:

               静态方法只能访问静态变量,static只能访问static。

               非静态方法既能访问静态变量又能访问非静态变量。

        例1:class Student{

                      static int count;

                      public int getNum(){   //非静态方法既可以调用静态变量也可以调用非静态变量

                          count++;

                          return count;

                      }

                 }

                 主程序调用必须先new出一个对象才可以调用(因为getNum()方法是非静态的 所以它就不是共享的,要new出对象,用对象才可以调用)

                 Student stu1 = new Student();

                 int count1 = stu1.getNum();

         例2:class Student{

                       static int count;

                       public static int getNum(){

                           count++;

                           return count;

                       }

                  }

                 主程序调用  int count2 = Student.getNum();

二、静态块。

    static{

    }

    静态块只能加载并运行一次,最先执行。

   例:class Student{

              public static int count;

              static{

                   count++;

              }

              public void studentNum(){

                   System.out.println(count);

              }

          }

         主程序调用:new Student().studentNum(); // 1

                               new Student().studentNum(); // 1

三、封装。

    1.封装代码的功能:

       只对外界提供一个名字,让外界能访问这些属性或者功能。

    2. 例:银行的安全

        class creditCard{

            private double salary; // 外界访问不到salary,封装了

            public double getSalary(){

                return salary;

            }

           public void setSalary(double sal){

               if(sal <= 0){

                   return 0.0;

               }else{

                        salary = sal;

               }

              return salary;

           }

        }

        public class money{

            public static void main(String[] args){

                creditCard cc = new creditCard();

                cc.setSalary(100000000);

                double salary = cc.getSalary();

            }

        }

        注:private 私有,只有自己拥有,外界访问不到。

原文地址:https://www.cnblogs.com/catcoffer/p/8993876.html