Skip to main content

CST 338 - Week 4

This week, our team worked on quite a difficult assignment, in my opinion, which embraced two out of the three cornerstone principles of object-oriented programming: polymorphism and inheritance.

Polymorphism, like the Greek roots its based on, roughly means "many forms" in English. This allows programmers to write code that is an interface for different data types, while in most cases achieving the same functionality. Consider a theoretical Shape class and all the classes that can inherit from it, such as the Circle, Square, Triangle, and Pentagon classes. All of these shapes have different numbers of points, lines, and algorithms used to draw them. However, by making each class combine its own data and code within the Shape class, a programmer could write a draw() method/function, and another program calling this draw() function could get the correct shape depending on the parameters used. Thus, this theoretical draw() method could have many forms, which is the defining characteristic of polymorphism.

We also worked with interfaces and incorporated one into our program this week for the first time in this class. A major difference between an interface is an abstract class is that an abstract class can implement functionality code-wise, while an interface only provides definitions for functionality. If you try to give a method header in an interface a body, every (properly working) Java IDE/compiler will spit out an error. However, abstract classes can do things such as implement constructors and lay out basic functions, something you can't do in an interface.

Writing the barcode scanner was a tougher assignment than our group expected because getting 2D array traversal whilst checking out of bounds errors and converting string chars to ASCII codes initially was difficult to get right on their own, more so working together as a final program. However, we managed to get it done and working as intended, and I am proud of my team's work and our results. 

Comments

Popular posts from this blog

CST 300 - Week 4

Educational Goals My current educational goals are to finish my bachelor's degree in computer science while also gaining a deep understanding of the fundamentals along the way. I have always believed that a solid understanding of the fundamentals goes a long way in any skill since you always refer back to them. When I have gotten stuck on a problem or some skill in the past, I have always taken a step back, broken down things into smaller pieces and remembered my fundamentals, and doing so has helped me through a lot of academic and professional work so far. Although I already know basic programming and data structures, I want to learn more about them and discover new ways of thinking in order to solve complex problems.  Career Goals I started a career as a full-time software test analyst about two months ago. Even though my job doesn't involve a lot of programming, getting a degree in computer science would be really helpful in all aspects of my career, such as identif...

CST 300 - Week 2

Introduction This was a busy week for class! I started writing the first draft of my paper and got it done in a few days. It took a lot of thinking and research to get it done, but I'm glad I didn't procrastinate. Revising the first draft might take quite and effort as well. In the past when I would write geological reports, I found revising them was the hardest part. Part I. Speaking of hardest part, time management is something I am still getting used to, especially with this week's workload. Out of the items in the time management article, the top 3 things I feel like I am best at are: Creating a good study space Taking notes Reading  However, I could use some work on: Sticking to a schedule Revising lecture notes (on time) Studying within 30 min. of going to sleep Part II. Here's the activity log I filled out. It documented one of my Mondays at work. Part III. Project management skills are something I feel like I don't have enoug...

CST 300 - Week 3

This week, we learned about ethics, ethical frameworks, and held a discussion about an infamous contemporary ethical scenario. After reading through this week's material I feel as if I have a much better understanding of ethics in society, and the motives behind people's decisions whether good or bad.  I'll admit I didn't pay much as much in depth discussion to Edward Snowden when he originally leaked all that information back in 2013, but after this week's discussion it really got me thinking about proper ethical behaviors in society and made me question much privacy I actually have as a US citizen.  Note: NSA, if you're reading this, say hi to my friend Chris for me. He's around the DC area somewhere and I'm sure you've run into him a couple of times. I swear he's a nice guy and doesn't bite.  Time Management and Studying I am getting much better at concentrating while working on papers and studying material. Unfortunately, I shoul...