As a Unity developer myself, I very highly recommend learning C# for Unity scripting before you start a project like this. It is a very flexible language and (in my opinion) starting with it will help you learn other languages (Java and especially c++) that you might use in you game/software development future, whether you are a hobbyist or planning on becoming a CS major. I recommend studying C# basics online and eventually try out a book such as
Learning C# Programming with Unity 3D. Java will not help you, as the language Unity uses is actually better titled
Unity Script because it is different from Java in so many ways. Should you decide to use Unity Script, it will most likely only be useful on the Unity engine from that point on, so if you limit yourself to that, you will be limited in other game engines that don't use it. That aside, game programming is just as TBM_Christopher said, modular. Break your data into as many classes as possible to keep the game clean, and connect these separate classes to your battle script. It is a major hurdle to create a Pokemon game from scratch, but it is certainly possible. To get you started you will probably want to create a class that will hold the parameters for your moves. Something like the following: (written in C#)
using UnityEngine;
using System.Collections;
/// <summary>
/// Data holder for Pokemon Moves.
/// </summary>
public class Attack {
public string Name { get; set; }
public string Description { get; set; }
public short Power{ get; set; }
public int Accuracy { get; set; }
public int PP { get; set; }
}
Note that this would give you very basic damaging moves only. You'd have to create something such as an enum on a separate file that will hold the list of different status effects attacks might inflict, or a list of the name of stats so you can change those through an attack.
This is all I can give for a few tips. Just study hard and realize that it will take a lot of time, but will be worth it in the end, or even if you fail to make it far in the project. It is my philosophy in the field of Computer Science that failure is something I desire, because failure contributes to memory more than success does. Good luck!