I am not an OSBot guru by any means but I do have a lot of programming experience.
We use NPC because it is (almost always) used to reference a single NPC. getNpcs() targets a group of them but the purpose of getClosest(value) is to narrow it down to a single NPC.
It has very little to do with what class the method resides in because the naming of types has more to do with how they are actually used in the language. As you continue to learn it will become more and more clear how things are named and why.
To elaborate, the NPC in `NPC chicken = getNpcs.closest("chicken")` is actually the type of variable. It's the same as String in `String myName = "Dot"` or int in `int myAge = 9001`. Technically, it can be anything the compiler accepts. `getNpcs().closest("Chicken").getLevel()` is actually an `int` (because it is the level of the closest chicken, as an integer), so it needs to be written as `int chickenLevel = getNpcs().closest("Chicken").getLevel()` and the NPC type has nothing to do with it. If you don't understand that now, you will soon. The NPC type is specific to OSBot's API but if you familiarize yourself will other variable types in Java you'll figure it out quickly.