In OOP, each object contains data, and a set of methods that operate on the data.
You could argue either way about whether it's a restrictive clause (we only care about methods that act on the data in this object) or a non-restrictive clause (it's a fact that all the methods operate on the data)*.
When we can argue something like this either way, there is one ultimate authority: The writer. That's you, or for the duration of this answer, that's me. I'm saying it's restrictive, changing to that (not necessary, but it underlines that I'm conveying it as restrictive information), and this lets me help keep "set of methods" with that clause rather than "data and a set of methods".
As does the comma after data. We don't need it there to be valid, but we're allowed it, and it helps the reader know that "operate on the data" only applies to the methods.
The comma after OOP is also optional. Whether we have a pause there or not would depend as much on how it flows with the prior sentences, as anything else.
If the clause about methods where something that could only be understood as non-restrictive, I'd consider rewriting into two sentences.
*I can think of some arguments against that, but that'd be for SO rather than EL&U.