• JAVA核心技术I---JAVA基础知识(查漏补缺private,static)


    一:private对于类和对象(同C++)

    private是只有这个类内部可以访问(类的成员函数和定义初始化)
    private是类之间的限制,而不是对对象的限制《重点》
    同类对象是可以直接访问对象的私有成员
    class priTest{
        private int age;
        
        public void setAge(int a) {
            this.age=a;
        }
        
        public int getAge() {
            return this.age;
        }
        
        public int compare(priTest obj1) {
            int flag=0;
            if(this.age>obj1.age) {
                flag=1;
            }
            return flag;
        }
    }
    
    
    public class PrivateTest {
        public static void main(String[] args) {
            priTest p1= new priTest();
            priTest p2= new priTest();
            
            p1.setAge(15);
            p2.setAge(16);
            
            int ret=p1.compare(p2);
            
            System.out.println(ret);
        }
    }

    二:子类对于父类private成员变量的访问

    虽然子类无法继承父类的private变量,但是其父类private成员变量和方法依然存在,可以通过父类的公共方法(未重写)去访问到那些字段和方法
    class priTest{
        private int age;
        
        public void setAge(int a) {
            this.age=a;
        }
        
        public int getAge() {
            return this.age;
        }
        
        public int compare(priTest obj1) {
            int flag=0;
            if(this.age>obj1.age) {
                flag=1;
            }
            return flag;
        }
    }
    
    class priSonTest extends priTest{
        public void test() {
            System.out.println("nothings");
        }
    }
    public class PrivateTest {
        public static void main(String[] args) {
            priSonTest p2= new priSonTest();
            p2.setAge(16);
            System.out.println(p2.getAge());    
       }
    }

    二是可以满足一的

    三:static类静态变量的访问

    C++中static只能通过 类名.静态成员变量 进行访问
    但是java中除此之外还有其他访问形式:
    1.同C++
    2.通过对象可以访问public static成员变量
    3.可以通过静态成员函数访问
    4.可以通过普通成员函数访问
    注意:不允许通过静态成员函数去访问非静态成员变量或者方法
    class Parent{
        public int a;
        
        public void start() {
            System.out.println("paretn");
        }
    }
    
    class Child extends Parent{
        public static int b=3;
        
        public void start() {
            System.out.println("child");
            System.out.println(a);
            a+=3;
            b+=6;  //方法四访问
        }
        
        public static void change(int c) {
            b+=c;  //方法三访问
        }
    }
    
    
    public class MaintTest {
    
        public static void main(String[] args) {
            Child c = new Child();
            c.start();
            
            c.change(5);
            System.out.println(Child.b);  //方法一访问
            System.out.println(c.b);  //方法二访问
            
            Child.change(3);
            System.out.println(Child.b);
            System.out.println(c.b);
            
        }
    
    }
    child
    0
    14
    14
    17
    17
  • 相关阅读:
    android 模拟点击事件
    IGZO显示屏
    java 代码混淆
    android 模拟点击3
    android 文件读写
    android 抓包 tcpdump
    pathon 2
    conversion to dalvik format failed with error 1
    zipalign
    android 来电状态
  • 原文地址:https://www.cnblogs.com/ssyfj/p/10223646.html
Copyright © 2020-2023  润新知