ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaSE_Day_008

2021-07-31 10:02:46  阅读:147  来源: 互联网

标签:变量 代码 关键字 static javaSE 008 方法 Day 属性


7. 类的复合

在开发中会遇到需要在一个类中使用另一个类所定义的属性和方法,完成当前类中的逻辑执行,这种情况下我们就需要使用类的符合操作。

7.1 第一种

(1)说明:在一个类中,将另一个类的对象,作为本类中某个方法的实用参数。

  • 这个类有两种存在行为:
    • 一种是定义在参数列表中。
    • 一种是在方法内部以局部变量形式存在。
  • 好处:在什么地方使用就在什么地方创建,并不需要遵守客观现实规律。
  • 坏处:作用域小仅限在方法内有效。

7.2 第二种

(1)说明:在一个类中,将另外一个类的对象,作为本类中的属性。

  • 这种方式定义就是将一个类作为另外一个类属性存在,但是需要遵守客观现实规律。
  • 好处:因为是属性,所以作用域非常大(类内类外都可以使用)。
  • 坏处:需要遵守客观现实规律,不能因为某个操作而违背这个规律。

8. 程序中包的概念

(1)说明:通过在src下创建包来进行类的分类管理,将相同概念的类放置在一个包中,这样一来外界需要查询某个类的时候只需要在这个报下查看即可。

  • 在开发中我们通过包对类进行分类,再根据对包进行分类从而实现项目的分层(分模块)。
  • 创建类的时候是不允许重名的,对于名字相同的类可以通过分包进行存储。

(2)包的命名规则:

  • 创建包名不允许使用java开头,因为Java具有安全检查机制(JavaAPI中使用java开头)。
  • 包需要域名倒写。
    • 例如:www.baidu.com → com.baidu.
  • 如果公司域名是数字(包名不允许以数字开头),在数字之前添加下划线_即可。
  • 包名要求全小写,不要使用Java中的关键字作为包名,如果一定要使用关键字,建议关键字第一个字母大写用于区分。

9. 面向对象的三大特征:封装

(1)说明:封装就是将外界不需要的信息进行隐藏,尽可能隐藏对象功能的实现细节,通过向外界直接提供方法来保证外界无法破坏原有内部的信息。

9.1 Getter和Setter方法的实现

9.1.1 Getter方法的实现

(1)说明:Getter方法起到的作用就是获取属性值。

  • 属性被private(私有的)修饰后需要对其进行访问,要提供Getter方法。

(2)格式:

public 返回值类型 getXXX(){
    
    return 获取属性;
}
  • 访问权限修饰符固定为public。
  • 没有static进行修饰,但是必须由返回值类型。
  • 获取属性值的返回类型要与属性数据类型一致。
  • 方法名为get+要获取的数据类型名称。
  • Getter方法没有参数列表,因为获取数据不需要传递参数。
  • 在方法体中必须有return关键字。
  • Getter方法中可以做一些计算,但本质上最简单的方式就是直接返回获取的属性值。
9.1.2 Setter方法的实现

(1)说明:Setter方法起到的作用就是对属性方法进行赋值。

  • 属性被private(私有的)修饰后需要对其进行赋值,要提供Setter方法。

(2)格式:

public 返回值类型 setXXX(){
    
    return 获取属性;
}
  • 访问权限修饰符固定位public。
  • 没有static进行修饰,也没有返回值类型。
  • 方法名为set+要赋值的数据类型名称。
  • Setter方法有参数类表,因为要对属性进行赋值。
  • Setter方法不需要return关键字。
  • Setter方法体中主要实现的就是实用参数对属性进行赋值,可以额外的添加一些逻辑判断或计算来进行赋值。
9.1.3 总结

(1)说明:在使用了Getter和Setter方法之后,就满足了封装条件,可以保证外界无法直接访问属性,并且提供了对外暴露访问的方法。

10 this关键字

(1)说明:this关键字只能使用在本类(当前类)中代表当前对象。

  • this关键字使用在什么位置,被谁触发,谁就是this指代的当前对象。
  • 在现在的Java开发中,基本上不再使用this关键进行一些操作,现在this关键字在开发中最大的作用就是用来区分属性名和参数名。

(2)this关键字的一些操作:

  • 通过this关键字,在当前类中使用this.成员变量的方式调用属性,进行取值或赋值。
  • 通过this关键字,在当前类中使用this.成员方法的方式调用方法,进行方法的执行。
  • 通过this关键字,在当前类中使用this()在构造方法中调用本类中的构造方法。
  • 通过this关键字,可以在当前类中方法内部当做是本类对象进行方法参数传递。

(3)总结:this关键在最大的作用就是用来区分属性名和参数名,剩余的this关键字操作了解即可。

11 static关键字

(1)说明:static关键字的作用是修饰变量和方法,将变量和方法变成静态属性。在类中所有对象的属性都是独立的,但是在某些情况下需要所有对象共享一个变量,使用static修饰变量后,这个变量就可以让所有对象共享。

  • static修饰属性和方法之后,这个属性和方法被称为类的属性和方法,因为这个属性输入某一个对象,而是所有对象都具备,相当于类中的。

(2)static关键字修饰了变量和方法之后其具备以下特点:

  • 随着类的加载而加载。
    • 当类加载器把字节码文件(.class)加载到JVM中的时候,static修饰的变量和方法就已经存在内存中了。
  • 优先级高于对象。
    • 对象是通过new关键字创建出来的,而static修饰的变量和方法在类加载的时候就进行加载,所以static修饰的变量和方法优先级高于对象,所以成员变量和成员方法无法直接在静态方法中进行调用(这个时候对象还没有创建成员变量和成员方法)。
  • static修饰成员变量之后,这个变量会变成静态变量,静态变量是所有对象共享的。
  • static修饰的变量和方法被称之为类变量和类方法,所以正确调用static修饰的变量和方法的语法为:
    • 如果实在同一个类中调用本类定义的静态变量或方法,可以省略类的名字,直接进行调用;如果不在同一个类进行调用,则必须书写类的名字用来表示静态变量和静态方法出自哪一个类。
类名.静态变量名:进行取值和赋值操作。
类名.静态方法名:进行静态方法的调用。

12 代码块

(1)说明:代码块就是使用{}括起来的一段代码。

12.1 局部代码块

(1)说明:直接定义在方法体内部的代码块。

public class LocalBlock {
    public static void main(String[] args) {
        int b = 20;
        { //局部代码块
          
            int a = 17; //局部代码块内部的局部变量
            System.out.println(a);
            //访问局部代码块外部的变量
            System.out.println(b);
        }
        //不能访问局部代码块中a变量
      //  System.out.println(a);
    }
}

12.2 初始化代码块(构造代码块)

(1)说明:初始化代码块直接定义在类中,每次创建对象的时候都会执行这个代码块,这个代码块的执行优先级高于构造方法。

public class LocalBlock {
    public static void main(String[] args) {
        int b = 20;
        { //局部代码块
            //在外界操作这个代码块中都可以
            int a = 17; //局部代码块内部的局部变量
            System.out.println(a);
            //访问局部代码块外部的变量
            System.out.println(b);
        }
        //不能访问局部代码块中a变量
      //  System.out.println(a);
    }
}

12.3 静态代码块

(1)说明:静态代码块就是在初始化代码块前面添加static进行修饰。静态代码块会随着类的加载而加载并且只会加载一次。

  • 静态代码块多用于资源加载方向,例如读取properties资源文件数据、加载JDBC连接驱动。
public class StaticBlock {
    public StaticBlock(){
        System.out.println("无参构造方法");
    }
    static{
        System.out.println("静态代码块");
    }
    {
        System.out.println("初始化代码块");
    }

    public static void main(String[] args) {
        new StaticBlock();
    }
}

14 工具类

(1)说明:在一个项目中会有一些通用的逻辑被抽取封装成方法,随着这类方法的增对,为了更好的进行的管理和利用,可以提供一个类来专门存储这些通用方法,这个类就叫做工具类。

  • 定义在工具类中的方法要求:方法必须是静态方法,变量需要是静态变量。
  • 常用的工具类:Arrays数组工具类、Math数学工具类。

(2)自定义工具类的要求:

  • 类的名字必须是:xxxUtil或xxxUtils或xxxTools。
  • 工具类中不允许创建对象,建议工具类中的构造方法私有化。
  • 工具类中所有的属性和方法都是静态的。
  • 工具类中不允许有main方法。

标签:变量,代码,关键字,static,javaSE,008,方法,Day,属性
来源: https://www.cnblogs.com/yunStudy0214/p/15083372.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有