How do I hide/lock a few tables in Oracle so that only my application has access to modify those data in the table?
Create a user/login to the DB that you can control. Assign that user as the owner (using grants) of the tables you need to "hide/lock". Use grants to make the tables inaccessible ( or read only) to other users.
After creating the user, make sure you remove the grants for other users. By default, default users have the grant. So make sure only your user has all the the grants
All you need to do it create a new user and create the tables under that user's schema. No other users, other than highly privileged ones with SELECT/INSERT/etc ALL TABLES privileges will be able to access them unless you grant a privilege to them or to a role that is granted to them.
If you want the ultimate security model, which you probably don't, create the table under one schema (say APP_DATA), and create stored procedure under another (APP_CODE). Grant only the required privileges on APP_DATA objects to the APP_CODE schema, and grant only the required privileges on the APP_CODE schema to other users.