• java


    种类:

    权限修饰符:

    public                       公共的                 本类    同包    子类继承后可以通过子类对象在子类内部中使用    任意位置只要有这个class的对象都可以使用                

    基本范围无限制

    protected                  受保护的            本类    同包    子类继承后可以通过子类对象在子类内部中使用                                                                                         

    在本类中使用 或者 相同package的class中声明使用  或者  在不同包的子类中通过自身实例对象使用(person是animal的不同包中的子类,person中声明person对象可以使用animal中的protected属性参数和方法,但是在person中声明animal对象,不能使用animal的protected属性的参数和方法)。

    默认不写                   默认的               本类    同包                                                                                                                                                                         

    在本类中 或者 相同package的class中声明使用。   (class animal 在 A 包, class person在 A 包里面的 B 包也算不同包  )                   

    private                      私有的               本类                                                                                                                                                                                     

    只能在本类中使用

    使用private等给与权限限制,是为了防止直接操作或者误操作,降低耦合性,添加校验等。所以属性一般设为private。

    java对象的特征:继承(extends),封装(将数据方法包装,保护安全性和程序健壮性),多态,(抽象)

    spring: IOC(控制权反转,控制权交给别人) DI(依赖注入)

    特征修饰符:

    final                          最终的,不可改变的

    static                        静态的

    abstract                    抽象的

    native                       本地的

    transient                   瞬时的   -----》序列化

    synchronized            线程并发使用

    volatile                      线程并发使用

    final                          最终的,不可改变的

    修饰: 变量,属性,方法,类

    final修饰变量后一旦存入值则不能修改,相当于常量。

    变量为基本类型,则值不让修改

    变量为引用类型,则地址不让修改

    属性加上final后必须赋予默认值。

    方法加上final后不能被子类重写覆盖。

    类加上final后不能被继承修改(一般用于修饰工具类)Math,String,Scanner等

    基本类型变量不能直接修改值

     引用类型变量不能修改指向地址,str申请了一个新的地址,想赋给fs失败了

     

     

    修改引用变量内的值成功。 

    static                        静态的

    修饰: 属性,方法,块,内部类

    静态元素存在方法区的静态元素区,同一个类的所有实例的static变量都存在同一个内存中,他们操作的是同一个内存值。

    静态元素(块和方法等)在类加载时就初始化了,只加载一次。块和构造方法在创建实例时才运行。

    package xiushifu;
    
    public class StaticTest {
    
        public String name;
        public static int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public static int getAge() {
            return age;
        }
    
        public static void setAge(int age) {
            StaticTest.age = age;  //自动生成的static变量的set方法
        }
    
        public void show(){
            System.out.println("name = " + this.name + " age = " + this.age);
        }
    
        public static void main(String[] args){
            StaticTest st1 = new StaticTest();
            st1.name = "aaa";
            st1.age = 10;
            st1.show();
    
            StaticTest st2 = new StaticTest();
            st2.name = "bbb";
            st2.age = 20;//给st2的age赋值,st1的age也一起被修改了。
            st1.show();
            st2.show();
        }
    }

     常用方法: static final 变量 = 。。。 作为常量使用在增加代码可读性。 

    abstract                    抽象的

      只是概念,没有具体执行   

    可以用来修饰:方法,类。 

    抽象方法: 用abstract修饰,只有结构,没有执行体。  public abstract void aaa();

    抽象方法必须放在抽象类 或者 接口中。

    抽象类中不是必须有抽象方法,不过一般都会有。

    抽象类:

    可以包含abstract方法。

    包含构造方法,但是不能调用。用来给子类继承。

    抽象类:

    可以只接单继承抽象类

    可以只接单继承普通类(一般不会这么干)

    不可以直接被子类继承(子类需要具体化抽象类中的方法)

    可以完全没有抽象方法

    可以完全没有具体方法 ---  接口interface

    native                       本地的

    执行的是底层其他语言的代码。

    transient                   瞬时的   -----》序列化

    synchronized            线程并发使用,同时只能有一个执行

    volatile                      线程并发使用

  • 相关阅读:
    ubuntu更强大的包管理工具:aptitude
    ubuntu下载自带的java-1.8
    [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)
    不能下载程序
    为什么你的电脑会变得越来越慢?
    win7常用键
    C# 遍历枚举(枚举是目的,遍历(获取)是手段)
    基于PCIe的高速接口设计
    Xilinx中的xapp1052理解
    把Xilinx的IPCORE解密成源代码的方法
  • 原文地址:https://www.cnblogs.com/clamp7724/p/11599452.html
Copyright © 2020-2023  润新知