Java学习日记

1. Java的访问控制修饰符有哪些?各有什么访问权限?并分别写程序验证。

  • 权限修饰符:public、默认(包访问权限)、protected、private
  • 其他修饰符:abstract、static、fianl、transient、volatile、native、synchronized、strictrp
  • 访问权限:
  • private:用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。
    protected用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。
    public 当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。
  • package com.sunrise.eHealth.day0521.other;
    
    public class Dog {
    
        public static void main(String[] args) {
            HelloWorld hw = new HelloWorld();
        }
    
    }
    
    package com.sunrise.eHealth.day0521.other;
    
    public class Animal {
    
        protected void info(){
            System.out.println("Hello World");
        }
    
    }
    
    package com.sunrise.eHealth.day0521.other;
    
    public class Animal {
    
        private void info(){
            System.out.println("Hello World");
        }
    
    }
    
     2. 子类对于从父类继承的哪些属性与方法是可见的?请分别写程序进行验证。
  • 子类继承父类:可以继承父类的私有属性和方法,但是不能使用父类的私有属性和方法。
  • public class test {
        private int a;
        protected int b;
        public void set(int a1,int b1){
            a=a1;
            b=b1
        }
    }
    class test1 extends test{
        private int c;
    }
    public class test2{
        public static void main(String[] args){
            test1 s=new test1();
            s.b=5;
            s.a=5;
            System.out.println(s.b);
        }
    }
    

    3. 什么是组合?有什么作用?请举例说明。

  • 组合:把一个类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。
    作用:不破坏封装,整体类与局部类之间松耦合,彼此相对独立且具有更好的可扩展性。
    例如:
            class A{…}
            class B{A a
                    …
                    }
    4. 什么是重载?有什么作用?请构造各种重载示例。    

  • 重载:方法名称(函数名)相同,参数类型 或 参数个数 不同。
    作用:可以使用相同名字(一个名字)的方法实现不同的功能。

  • public class OverloadDemo {
     
        void test() {
            System.out.println("Hello World");
        }
     
        void test(int a) {
            System.out.println("a: " + a);
        }
     
        void test(int a, int b) {
            System.out.println("a and b: " + a + " " + b);
        }
     
        double test(double a) {
            System.out.println("double a: " + a);
            return a * a;
        }
    }

    5. 什么是覆写?有什么作用?覆写父类方法的条件有哪些?请举例说明。

  • 子类与父类产生继承关系以后,会继承父类的全部操作。如果子类发现父类不足进行补充修改,但是需要保留父类属性和方法,就进行覆写。

  • 被覆写的方法不能拥有比父类更为严格的访问控制权限。

  • 如:

  • class Person{
        public void print(){
            System.out.println("[Person]类的print方法");
        }
    }
    class Student extends Person{
        public void print(){
            System.out.println("[Student]类的print方法");
        }
    }
    public class Test{
        public static void main(String[] args){
            new Student().print();
        }
    }
    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值