java 面向对象-关键字解析

This 关键字

          表示当前对象的引用。

         用处:

            1、构造方法,当构造方法中的参数名称跟类的成员变量名称一样的时候,可以使用this代表当前对象
                             注意:有了this之后,可以将构造方法的参数跟成员变量保持一致
               当构造方法中需要调用其他的构造方法时,可以使用this(name)调用其他构造方法,但是必须位于方法体的第一行
           2、普通方法中:
                当多个普通方法之间需要调用的时候,可以使用this来进行调用,指的是当前对象的其他方法
           3、成员变量的使用:
               当方法中的参数名称跟成员变量保持一致的时候,使用 this.变量名称 表示的是对象的值,而使用变量名称表示形参列表中的值

          this不能用于static方法。

          

public class ThisDemo {

    String name;
    int age;

    public ThisDemo(){

    }

    public ThisDemo(String name){
        System.out.println("one");
        this.name = name;
    }

    public ThisDemo(String name,int age){
        this(name);
        System.out.println("two");
        this.age = age;

    }

    public void test1(){
        System.out.println("test1");
        this.test2("hehe");
    }
    public void test2(String name){
        System.out.println("test2");
        test1();
        System.out.println(name);
        System.out.println(this.name);
    }

    public static void main(String[] args) {
        ThisDemo td = new ThisDemo("ls",12);
        System.out.println(td.name);
        System.out.println(td.age);
        td.test2("lisi");
    }

}

Static 修饰符

      修饰成员变量的时候,表示静态成员变量或者叫类变量
           普通变量在使用的时候,必须要通过对象名进行调用
           类变量或者静态变量可以使用对象名调用也可以使用类名进行调用

      修饰方法的时候,表示静态方法或者叫类方法
           普通方法在使用的时候,必须要通过对象名进行调用
           类方法或者静态方法可以使用类名,也可以使用对象名
 

      注意:
           1、静态变量,在创建对象之前被初始化,或者说在类被载入之前进行初始化
           2、静态变量被所有的对象共享,属于公共变量,对象和类都可以直接调用,但是推荐使用类来调用
           3、成员变量放在堆中,而静态变量放在方法区中静态区
           4、静态变量不能定义在静态方法中
           5、静态方法可以在非静态方法中进行调用
           6、静态方法中不能直接调用非静态方法
           7、静态方法中不允许出现this调用
           8、一般工具类中的方法定义为static

public class StaticDemo {

    String name = "zhangsan";
    static int age = 10;

    public static void test(){
       System.out.println("name: "+name+" age:"+age);
    }

    public void test2(){
        System.out.println("non-static");
    }
    public static void main(String[] args) {

        //使用类名调用
        System.out.println(StaticDemo.name);
        System.out.println(StaticDemo.age);

        StaticDemo sd = new StaticDemo();
        sd.test();
        StaticDemo.test();
        sd.test2();

    }
}

代码块

     使用{ }括起来的代码叫做代码块

    分类:
    普通代码块:定义在方法中,使用{}括起来的代码叫做普通代码块


   构造代码块:定义在类中的使用{}括起来的代码叫做构造代码块
           注意:每次代码运行的时候会将构造代码块中的代码添加到构造方法的前面
                      构造代码块中的代码会添加到每一个构造方法中,当使用this(参数)的时候不会添加


    静态代码块:使用static{}括起来的代码叫做静态代码块,在程序载入的时候优先执行
                       数据库连接等其他提前需要准备好的代码会放在static代码块
 

   同步代码块:
              在多线程的时候回使用,用来给共享空间进行加锁操作(后面讲)

   执行顺序:静态代码块--》构造代码块(创建对象的时候才会用到)--》普通代码块

public class CodeBlockDemo {


    int a ;
    int b;

    static{
        System.out.println("静态代码块");
    }

    public CodeBlockDemo(){
        System.out.println("无参");
        System.out.println("构造方法");
    }

    public CodeBlockDemo(int a){
        this.a = a;
    }

    public CodeBlockDemo(int a,int b){
        this(a);
        this.b = b;
    }
    {
        System.out.println("构造代码块");
    }

    public void test(){
        System.out.println("test");
        {
            System.out.println("我应该是什么分类");
        }
    }

    public static void main(String[] args) {
        CodeBlockDemo codeBlockDemo = new CodeBlockDemo(1,2);
        codeBlockDemo.test();
        {
            System.out.println("main");
        }
    }
}

Package

      为什么需要package?

            为了解决类之间的同名问题,不同的package下面可以同命名。

             为了便于管理类:合适的类位于合适的包

      使用方法:

          通常是类的第一句非注释性语句

          包名:域名倒着写,再加上模块名

                     com.csdn.*

      注意:

              写项目的时候都要加包,不要使用默认的包

              com.gao和com.gao.car,这两个包没有guan关系,是完全独立的。

     

     JDK中的主要包

           java.lang

          包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。

          java.awt

         包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

          java.net

         包含执行不网络相关的操作的类。

         java.io

        包含能提供多种输入/输出功能的类。

        java.util

        包含一些实用工具类,如定义系统特性、使用不日期日历相关的函数。

 import


  当需要引入非lang包的其他java类的时候,需要使用import工具
          如果不使用import,每次在使用某个类的时候必须要将类的完全限定名都加上才可以使用,太过于繁琐
           譬如:  java.util.Date date = new java.util.Date();

 

   用法:
       import java.包名.类名;导入具体的类  推荐使用
       import 包名.*;    将当前包下的所有类文件都进行导入

  注意:
       当一个java文件中需要使用多个同名的类的时候,只能选择导入一个,另一个使用完全限定名的方式进行导入

   静态导包:
        当需要使用某个类的多个方法的时候,同时又不想频繁写该类的名称,此时可以使用静态导包    

        import static java.lang.Math.*;//导入Math类的所有静态属性

        import static java.lang.Math.PI;//导入Math类的PI属性

        然后,我们可以在程序中直接使用:System.out.println(PI);

代码下载地址: https://pan.quark.cn/s/b4a8e0160cfc 齿轮与轴系零件在机械设备中扮演着至关重要的角色,它们负责实现动力传输、调整运动形态以及承受工作载荷等核心功能。 在机械工程的设计实践中,齿轮和轴系的设计是一项关键的技术任务,其内容涵盖了材料选用、构造规划、承载能力分析等多个技术层面。 下面将系统性地介绍《齿轮及轴系零件结构设计指导书》中的核心知识点。 一、齿轮设计1. 齿轮种类:依据齿廓轮廓的不同,齿轮可划分为直齿齿轮、斜齿轮以及人字齿轮等类别,各类齿轮均具有特定的性能特点与适用工况,能够满足多样化的工作环境与载荷需求。 2. 齿轮规格参数:模数大小、压力角数值、齿数数量、分度圆尺寸等是齿轮设计的基础数据,这些参数直接决定了齿轮的物理尺寸与运行性能。 3. 齿轮材质选用:齿轮材料的确定需综合评估其耐磨损性能、硬度水平以及韧性表现,常用的材料包括铸铁、钢材、铝合金等。 4. 齿轮强度验证:需进行齿面接触应力分析与齿根弯曲应力分析,以确保齿轮在实际运行过程中不会出现过度磨损或结构破坏。 5. 齿轮加工工艺:涉及切削加工、滚齿加工、剃齿加工、淬火处理等工艺流程,工艺方案的选择将直接影响齿轮的加工精度与使用寿命。 二、轴设计1. 轴的分类方式:依据轴在机械装置中的功能定位与受力特点,可将轴划分为心轴、转轴以及传动轴等类型。 2. 轴的材料选择:通常采用钢材作为轴的材料,例如碳素结构钢或合金结构钢,特殊需求时可选用不锈钢材料或轻质合金材料。 3. 轴的构造规划:需详细考虑轴的轴向长度、截面直径、键槽布置、轴承安装位置等要素,以满足轴的强度要求、刚度要求以及稳定性要求。 4. 轴的强度验证:需进行轴的扭转强度分析与弯曲强度分析,以防止轴在运行过程中发生塑性变形...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值