You have pretty much answered this yourself… but to explain in a little more detail…
You have three parts there;
public is what is referred to as an Access Modifier, it is what controls what other things such as other classes and the Unity editor can see it and interact with it. There are several options but public
means anything can see it.
Paddle is the Type, e.g. what sort of thing (a type) it is. So when yoy listed Int, Bool, String etc, they are also types, Paddle is just another one that you have created.
paddle is the name of the variable (field) which will refer to your type.
So, you have paddle which is a Paddle and is public.
Equally, you could rename paddle to carlsPaddle and that would be fine if it remains of type Paddle. At the moment you couldn’t say that it was of type CarlsPaddle because you haven’t written any code, e.g. a class called CarlsPaddle.
Similar examples;
We have a variable to hold the count of some items. We will call it counter. The things are whole things (not decimals/fractions) so we will use an integer. I want other parts of the code to see this variable, we will set it’s access modifier to public.
public int counter;
We have a variable to hold a message which will be displayed to a user. We will call it message. It is going to hold some words, so we will set it’s type to string. We want other parts of our code to be able to access this message, maybe changing the text, so we will set it’s access modifier to public.
public string message;
Does this help?