'cannot access non static method "GetComponent" in static context, despite me not declaring the class as static

I am currently working on making a class accessible from other scripts. Below is what I have coded.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(BoxCollider2D))]
// Start is called before the first frame update
    public class _move
    {

        private float _sizex;
        private float _sizey;
        public _move(float sizx, float sizy....etc)
        {        


            _sizex = sizx;
            _sizey = sizy;
        }


        public  void regularmove(float sizex, float sizey...etc)
        {
            GameObject _player;
            _player =  GameObject.GetComponent<GameObject>();
            BoxCollider2D bc2d;
            bc2d = _player.GetComponent <BoxCollider2D>();
            bc2d.offset = new Vector2(locationx + 1, locationy);
        }
    }

however, when I try to compile it, it gives me an error.

cannot access non-static method"GetComponent"

on this line of code

_player =  GameObject.GetComponent<GameObject>();

I do not know why this is happening because I have not declared the class as static, and do not really know the properties of GetComponent that well. Can someone tell me what is happening and how I can solve this? Also, when I change

GameObject _player; 
to
public GameObject player;

the scripts below suddenly cease to work, giving me errors like

cannot resolve symbol _player 

what exactly is happening here? Thanks in advance!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source