Don't waste time "defining" OOP.
Just use an OOP language for all your examples.
Objects are trivially obvious. The real world is full of objects.
Don't "define" objects. Just show programming examples, the 'objectness' will be obvious.
People with no programming background don't have silly expectations based on procedural programming.
People who learned COBOL or Basic will have problems.
Parts of this depend on the language. Some languages make OOP hard.
For example, in C++, the "class" is just definitional. It doesn't exist as a discrete object at run-time.
In Java and C++, some things are objects, but a few "primitive" types are not objects.
Some languages make OOP easier.
Python and Smalltalk everything is an object. There are no primitive types to muddy the waters. When you learn OO in a language like Python, the objectness is clear and obvious because it pervades everything. Just like the real world, where objects are everywhere.