• 0

What is Class Design (Java)


Question

2 answers to this question

Recommended Posts

  • 0

Designing classes, for more information on what classes are: http://docs.oracle.com/javase/tutorial/java/concepts/class.html

 

Note: I posted the link to Java class examples due to the (Java) in topic, there are nicer examples to read through in other OOP based languages.

  • 0

("Class design" can be a bit of vague topic, so the following is the way I see it, but not necessarily the way your professor may see it)

Designing a class is the process of describing a class in an simple form, without going into any code. Think of it a bit like pseudocode for an object. Primarily, class design focuses on the public (and protected) properties of the class (public methods, constructors, public members, etc), without including the private stuff that actually makes it work.

High-level class design allows you to get a grasp of how objects may interact with each other before you write any code. The following is a basic UML class diagram showing the class design of three classes...

500px-KP-UML-Generalization-20060325.svg

In the example above, the three classes are Person, Student and Professor. The Person class is general and contains only general "Person" data, the Student and Professor are specializations of the Person class (i.e. they inherit it).

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Darwin Mach Kernel/ BSD. Which is both open source.
    • You mean BSD. The UNIX kernel is not open source.
    • I have been on Linux Mint full-time since Jan 2019. while there is a learning curve, it's worth it if you can make the switch, which I can. I mainly browse web, play some games (generally Lutris(Windows games), or through emulators (MAME/Mesen/Flycast etc) etc), and use a small amount of Windows programs (Foobar2000/7-zip/WinRAR/ImgBurn etc) etc. it's nice to dodge the bloat/BS of Windows as you can really feel Linux is all around faster, especially certain things. p.s. recently I enabled NTSync for games since Linux Mint recently offered the 6.14 kernel, which has NTSync support (it's not enabled by default though but you can enable it temporarily for your current boot of the OS through 'sudo modprobe ntsync')
    • A rotten article full of handwaving of anti-consumer practices. Aside from the fact that no, not even close to every piece of major software collects information about its users, ethical developers make such telemetry opt-in and allow it to be completely disabled. To use KDE Plasma as an example, you're shown a greeter upon first boot that gives users the option to send the developers telemetry, with the default being off and 'off' actually meaning off. Windows 10 has never offered that capability - only a promise that Microsoft will slurp up less of your data if you spend time tweaking 50 different privacy settings. There is still absolutely no way to completely opt out of sending Microsoft telemetry in any version of Windows 10 (or 11, naturally). Even using group policy in Enterprise editions only allows you to reduce telemetry to the bare minimum. Home-focused editions don't even get that option. Articles like this dismissing user privacy concerns as "FUD" are a part of the reason Microsoft felt confident enough to go so much further with Windows 11. I guess you get what you deserve in that respect. Personally, I finally made the move to Linux after 15 years or so of dabbling with it, but never really considering a permanent switch. Enjoy your bright, shiny Windows future. You asked for it, after all.
  • Recent Achievements

    • First Post
      smileyhead earned a badge
      First Post
    • One Month Later
      K V earned a badge
      One Month Later
    • Week One Done
      K V earned a badge
      Week One Done
    • Dedicated
      CarlosABC earned a badge
      Dedicated
    • One Month Later
      solidox earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      640
    2. 2
      ATLien_0
      240
    3. 3
      Xenon
      172
    4. 4
      neufuse
      155
    5. 5
      +FloatingFatMan
      123
  • Tell a friend

    Love Neowin? Tell a friend!