Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Object-Oriented Design Object Oriented Design CRC stands for Classes, Responsibilities, Collaborators Class name goes on the top Responsibilities go on the left Collaborators go on the right UML Basics Inherits, is a... Implements, is a... Aggregation, has a... Dependency Design Identify nouns Group nouns into packages Responsibilities Identify more nouns & responsibilities Use case - example that helps identify what the program needs to do/handle Testing It's a good idea to write unit tests, small examples of things that should happen Language feature: assert() Documentation /** javadoc comment */ put them on classes, methods, fields, as appropriate @see refer to another class or method @param document a param @return document the return value Examples Blackjack? Chess? Battleship? Adventure? Debugging To debug: compile with the -g flag, javac -g Prog.java To run the debugger local debugging jdb Prog remote debugging java -Xdebug Xrunjdwp:transport=dt_socket,server=y,address=8080 Prog jdb -attach 8080 To profile: run like this: java -agentlib:hprof Prog then start jconsole and attach to your program Debugging stop at BlackJackViewer:58 clear BlackJackViewer:58 clears breakpoint dump bj / print bj.game.deck.cards.size() sets breakpoint prints out variables run / step / step up / next / cont Debugging threads / thread locals set watch threads where