What are the basic pillars of Object Oriented Programming?

there are 3 pillars of OOP which are Encapsulation, inheritance, polymorphism, but i heard lot's of people even companies software engineers use abstraction is a pillar, i haven't find it from MSDN why abstraction is not a pillar ?

Whereas encapsulation, inheritence and polymorphism are specific implementation details of OOP (i.e. the key ideas that make programming
object-oriented), abstraction is a high-level way of looking at your overall application design.
For example, in a simple database application you would not want to write your code so that your user-interface, business logic, and database code was all hard-coded and "tied" to each other.
Ideally you would think about your design and try to plan your application so that your user-interface code is independent of your business logic code (which can be "plugged-in" and/or changed as necessary), which is again independent of your database
code such that you could even switch to a different database and only need to change that one part of your code-base.
As an example, you might not pass a class representing some business logic directly into your user-interface code. Rather, you may want to create an interface representing a generic way of representing your logic that could be re-used by lots of business
classes. It is then this interface that could be used by your UI code or database code to validate data, rather than specific classes. Then you could create more classes in future that just have to implement the same interfaces, knowing that the rest of your
code would not need to change. This is just one aspect of "abstraction".
If you do a search for "application design patterns" or "object-oriented design patterns" you will find plenty of articles and books on how to go about doing this.

Similar Messages

  • Trying to understand the basic concept of object oriented programming.

    I am trying to understand the basic concept of object oriented programming.
    Object - a region of storage that define is defined by both state/behavior.
    ( An object is the actual thing that behavior affects.)
    State - Represented by a set of variables and the values they contain.
    (Is the location or movement or action that is the goal that the behavior is trying to accomplish.)
    Variables- (What does this mean?)
    Value - (What does this mean?)
    Behavior - Represented by a set of methods and the logic they implement.
    ( A set of methods that is built up to tell's the how object to change it's state. )
    Methods - A procedure that is executed when an object receives a message.
    ( A very basic comand.For example the method tells the object to move up, another method tells the method to go left. Thus making the object move up/left that combination is the behavior.)
    Class - A template from which the objects are created.
    ( I am very confused on what classes are.)
    - The definitions of the words I obtained from the "Osborne Teach Yourself Java". The () statements are how I interperate the Mechanisms (I do not know if Thats what you call them.) interact with each other. I understand my interpretation may be horribly wrong. I will incredibly appreciate all the support I may get from you.
    Thank you

    Object oriented programming is a replacement for the older idea of procedural programming (you can research procedural programming in google). As I understand it, in procedural programming, you have a step by step set of function calls to accomplish some task. Each function receives a data structure, manipulates it, and passes it to the next function. The problem with this is that each function preforms some action for the overall task and can't easily be reused by some other task. Its also harder to read the flow of what is happening with raw data structures flying all over the place.
    In object oriented programming, an object calls a function of another object and receives back, not a data structure, but another object. Objects contain a data structure that can only be accessed by its functions. An object is not so much a sub component of a bigger task, as it is a service that any other task can use for any purpose. Also, when you pass an object to the caller, the caller can ask questions about the data structure via its functions. The developer doesnt have to know what the previous function did to the data by reading up on any documentation, or having to reverse engineer the code.
    I suggest the best way of learning this is to code something like a library object.
    A library object contains a collection of book objects
    A book object contains a collection of chapter objects
    A chapter object contains a collection of paragraph objects
    A paragraph object contains a collection of sentence objects
    A sentence object contains a collection of word objects.
    Add functions to each object to provide a service
    Example: A library object should have a:
    public void addBook(Book book)
    public Book getBook(String title)
    public boolean isBookInLibrary(String title)
    The key is to add functions to provide a service to anyone who uses your object(s)
    For example, what functions (service) should a paragraph object provide?
    It shouldn't provide a function that tells how many words there are in a sentence. That function belongs to a sentence object.
    Lets say you want to add a new chapter to a book. The task is easy to read
    if you write your objects well:
    Sentence sentence1=new Sentence("It was a dark and stormy night");
    Sentence sentence2=new Sentence("Suddenly, a shot ran out");
    Paragraph paragraph=new Paragraph();
    paragraph.addSentence(sentence1);
    paragraph.addSentence(sentence2);
    Paragraphs paragraphs=new Paragraphs();
    paragraphs.addParagraph(paragraph);
    Library library= new Library();
    library.getBook("My Novel").addChapter("Chapter 1",paragraphs).
    Now, lets say you want to have a word count for the entire book.
    The book should ask each chapter how many words it contains.
    Each chapter should ask its paragraphs, each paragraph should ask
    its sentences. The total of words should ripple up and be tallied at each
    stage until it reaches the book. The book can then report the total.
    Only the sentence object actually counts words. The other objects just tallies the counts.
    Now, where would you assign a librarian? What object(s) and functions would you provide?
    If written well, the project is easily extensible.

  • What are the basic .jar files to be set in web dynpro project classpath

    Hi,
    I am having a problem while customizing the ESS. I used DTR, DC and imported configuration. After that, I created project from one of the DC(say ess/jp/addr). Later when I open an iView from any Web Dynpro component, I am getting lot of errors without even making any modifications.
    I closed the project and reopened it and reload & rebuilt, but it doesn't solved my problem. In my classpath settings I couldn't find any jar files except the jre_lib. Could you please let me know what are the basic jar files we have to set in classpath and where to get them from. We are using NWDS 7.0.06 version.
    Can you please let me know how to solve this or any other way to work around this.
    It's an urgent to be fixed as early as possible, plz help me out.
    Thanks & Regards,
    Raj

    Hi Julien,
    Thanks for your reply.
    We imported the the specified SCAs in our track.
    we are getting the following errors.
    Kind Status Priority Description Resource In Folder Location
    Error The import com.sap.xss.per cannot be resolved CcPerAddressInterface.java NS1_XSSTR_Dessusaddrsap.com/gen_wdp/packages/com/sap/xss/hr/per/us/address/cc line 18
    Error com.sap.pcuigp cannot be resolved (or is not a valid type) for the argument fpm of the method loadConfiguration CcPerAddressInterface.java NS1_XSSTR_Dessusaddrsap.com/gen_wdp/packages/com/sap/xss/hr/per/us/address/cc line 113
    Error com.sap.pcuigp cannot be resolved (or is not a valid return type) for the method getNextPerspective CcPerAddressInterface.java NS1_XSSTR_Dessusaddrsap.com/gen_wdp/packages/com/sap/xss/hr/per/us/address/cc line 127
    Error com.sap.pcuigp cannot be resolved (or is not a valid type) for the argument currentPerspective of the method getNextPerspective CcPerAddressInterface.java NS1_XSSTR_Dessusaddrsap.com/gen_wdp/packages/com/sap/xss/hr/per/us/address/cc line 127
    Error com.sap.pcuigp cannot be resolved (or is not a valid return type) for the method getCAPState CcPerAddressInterface.java NS1_XSSTR_Dessusaddrsap.com/gen_wdp/packages/com/sap/xss/hr/per/us/address/cc line 137
    Error com.sap.pcuigp cannot be resolved (or is not a valid type) for the argument perspective of the method getCAPState CcPerAddressInterface.java NS1_XSSTR_Dessusaddrsap.com/gen_wdp/packages/com/sap/xss/hr/per/us/address/cc line 137
    we manually set below .jar files in classpath settings.
    pcuixssfpm.jar
    pcuixssutils.jar
    logging.jar
    essper.jar
    Is there any alternative to work around.
    Thanks & Regards,
    Raj

  • What are the basic steps for creating a content repository?

    I am trying to create a document store on a file system (fsdb) that will hold files that are ftp's to that location. Is this possible using KM? If so, what are the basic steps for creating a file system repository and using it through KM? I have found stuff on help.sap.com but that only tells you what each component does not what actual steps need to be taken to setup KM, such as user rights , creating an entry point, so that all of KM is not visible, etc...
    If anyone knows of any guides that show a step by step process that would be great too.
    Thanks
    Paul

    Hi Paul
    First of all you need to create a new repository
    Suppose you want to add all the documents under folder Paul under C: Drive
    (Even you can put whole documents of C: drive into Paul)
    Navigate to System Admin -> System Configuration -> Knowledge management -> Content Management -> Repository Manager -> File System Repository
    There you can create a new directory by clicking on button New
    Give the parameters as follows :-
    Name               :           Anything you like
    Description       :           Anything you want
    Prefix (must start with /)  :  Probably same as your repository name like \Paul
    Lookup mode : caseless
    Root Directory   :  C:\Paul
    NOTE:  This is the trick. You need to give the proper path means folder path which you want use as repository)
    Repository Services  :  Any services you want
    Property Search : Managercom.sapportals.wcm.repository.manager.generic.search.SimplePropertySearchManager
    Security Manager         :           AclSecurityManager
    ACL Manager Cache   :           ca_cm_rep_acl
    The save it
    Now see whether the same repository is coming under KM Content or not, if not may be after restart it will come.
    I think the above information will help you. If still you have problem, please feel free to contect me.
    Regards,
    Chamkaur

  • What are the differences between PD objects and PA objects?

    can any one tell me What are the differences between PD objects and PA objects?

    PA is based on Infotypes 0000-0999. PD is based on Infotypes 1000-1999, chief being Objects Infotype 1000. Objects Infotype is the source of different Object Types such as Person, Position, Org Unit etc. You can check that through transaction OOOT.
    Regards
    Lincoln

  • What are the basic difference in the putting a variable in Query

    what are the basic difference in the putting a variable in
    1. Characteristic Restrictions Vs 2. Default Values

    Example - Cost Center Analysis Report - If I have Controlling Area in
    Char Restricitons Only - I have restricted it to say ABC Controlling Area or a Variable- Report will be hardcoded to ABC Controlling Area or the Input Value entered during Runtime - After Execution, The Same cannot be changed in the report.
    Assuming I will not have Controlling Area in the report means not in Rows n Columns.
    You might have seen no change - > Did you place material in Rows or Columns ?

  • HT5295 What are the basics of creating and distributing Podcasts?

    What are the basics of creating and distributing Podcasts?

    Search the web for "creating podcasts" and you'll find a plethora of information.
    Regards.

  • What are the basic element of Base configuration of an oracle Database ?

    What are the basic element of Base configuration of an oracle Database ?

    889543 wrote:
    What are the basic element of Base configuration of an oracle Database ?check this link
    http://www.dbnest.com/entry/194/
    and if you want to configure oracle installation click below link .
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14196/install002.htm
    --neeraj                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • What are the DATAPROVIDERS in Business Objects 6.5?

    What are the DATAPROVIDERS in Business Objects 6.5? When we use these data providers/

    Kishore,
    "Data Providers" is a term used to designate a concept of the "source(s)" for the report.  For instance, if you have a report that has a single query and in your report you have one (or n1) tab(s), then your report is a single data provider type of report.  Note that you can have multiple tabs with the data being displayed multiple ways, etc, etc, but since you have a single query, the report is still a single data provider.  Another scenario is that you have more than a single query (n1 query panels), then you have a report with multiple data providers.  Only upon inspecting the query panel side of the report can you determine the number of actual data providers.  You can have a single tabbed report with multiple data providers, or you can have a multiple tabbed report, but the point is that data providers are counted by the number of query panels being used and not necessarily the number of tabs.  I hope this explanation is clear, but if any questions arise, please post back.
    Thanks,
    John

  • What are the features of Business object.

    Hi Experts,
    Can any please give me  brief idea about Business object which one will going implent into BI . and what are the features of Business object.
    i will assign points if it is helpfull.
    Regards
    venu.

    Hi,
    Bussiness Object is the reporting tool of datawarehouse.BI is itself a data ware house.The next generation SAP BI will be using BO as reporting tool instead of BeX.BO is a Reporting tool. Presently we are using BI BEX tool for reporting. slowly BI BEX tool is replacing by BO.Use Netveawer and SAP BW for the Backend and Master data management or Use Data Integartor. For Front End Use BEX tools for QR$A or use the BO Suite.BO has many advantages over BEX tool like using BO we can creat crystal reports ets.
    Pls chk this links for detailed information abt Business Object:
    /people/ingo.hilgefort/blog/2008/02/07/businessobjects-and-sap-part-i
    /people/kuhan.milroy/blog/2008/03/11/introduction-to-business-objects-suite-of-technologies
    /people/ingo.hilgefort/blog/2008/02/19/businessobjects-and-sap-part-2
    /people/ingo.hilgefort/blog/2008/02/07/businessobjects-and-sap-part-i
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/90d7cbf0-84c2-2a10-dabd-93d5f0db5f4b
    Hope this helps,
    Regards
    CSM Reddy

  • What are the basic knowledge needed for swift coding?

    can someone please tell me what are the basic coding languages needed for swift coding .
    Like do we need to know c or c++ ??
    Thanks

    Although C is the default language of Unix, Swift does not require that you know C in order to learn or program in Swift. But knowing a programming language is a helpful step in learning a new programming language.
    If you read the manual's first couple of chapters you will see what the goal of designing the Swift language was. In the manual they even suggest you can learn Swift without knowing C. They have removed the indirection of the C reliance on pointers and other arcane methods in order to make Swift easier and quicker to learn.
    If you have no programming experience then I would suggest you might start with BASIC or Pascal. When you are comfortable with programming then you can take on Swift.

  • What are the steps  involved in writing a program?

    hi experts ,
       I am writing reports? i want to know that what are the steps required to write a program?
    and also Explain different techniques to analysize a program?
    please send example programs with analysis?
    I definately award a good number of points to help full answers.

    hi sateesh,
        welcome to SDN.
    first of all check ur requirement.
    Analysis what r the events that are required in ur report.
    write a pseudo code for ur requirement
    and then write ur program.
    To analyse a program v have to use the these t/c :
    SE30 - Runtime Analysis.
    ST05 - SQL Trace.
    Regards...
    Arun.
    Reward points if useful.

  • What are the order of interactive objects

    If you have two interactive objects on top of each other what are the rules regarding which shows up on top.
    for instance if you have a MSO slideshow and you try to put a button on top it will disappear behind the MSO on the iPad, I can work round this by putting the button inside all states of the MSO
    But are there any guidelines about which form of interactivity out ranks another?

    In most instances, the z-order determines which overlay stays on top when overlays are in a stack. In your example, you mention that when you place a button on top of an MSO, the MSO covers the button. That's not my experience. In a quick test, I overlapped buttons and an MSO, and I moved the top buttons to the front and the bottom buttons to the back. Here's what I got:
    In this example, DPS honors the z-order. You can interact with both the buttons (even if they're hidden) and the MSO.
    When you overlap interactive objects such as image sequences, inline videos, and slideshows, the z-order of the source objects determines which objects move to the front. Activating an overlay brings it to the front of inactive overlays. If multiple overlays are activated, the z-order determines which object is in the front.

  • What are the Basic Features of Enterprise Portal

    What are the default, given or otherwise features of SAP netweaver/enterprise portal. I do not want to redo a function or feature/template of the feature/basic iview (portlet) already exists. And where I can find/get these features.
    Thanks.

    Hi Joshua,
    yes, there is preconfigured content (templates) in the portal.
    Have a look at [SAP Help|http://help.sap.com/saphelp_nw70/helpdata/en/5a/0338f80c0b11d7b84800047582c9f7/frameset.htm].
    You'll find two entries in the left hand navigation: "Pre-configured Roles" and "Standard Portal Content".
    The information is not that detailed but you might get a first impression.
    Besides the standard portal content there are so called Business Packages, which provide pre-configured iViews, pages, worksets and roles for specific business processes / scenarios. You can find them [here in SDN|https://www.sdn.sap.com/irj/sdn/contentportfolio].
    Hth,
    Michael

  • What are the basic components in the library plugins folder.

    What are the standard plugins in the Library/Plugins folder for Snow Leopard? I'm trying to figure out what I can uninstall and I have no clue.

    It probably contains the empty folders Components, HAL, MAS, and VST. (I'm not sure, since my folders do contain stuff.) But none of Apple's standard effects and instruments are sitting there.

Maybe you are looking for

  • How to create a Dynamic UI that can work as a Graphic builder

    Hi Guys I have a requirement here There should be a Graphic Builder ...........like the way we see our Flex Builder But this should be a web application with the following functionality Lot of widgets on your left panel like say meter , cricle, chart

  • Problem with merging partitions

    Hi all, I am having a bit of trouble partitioning the HD on the MBP. I hope you guys can help me. I would like to reformat the drive and have made a partition entitled "Backup" (see image link above) to store the files I need.  Now, I would like to m

  • HOST ROUTING TABLE IS EMPTY please HELP

    HELLO THERE PLEASE HELP ME , MY HOST ROUTING TABLE IS EMPTY WHAT DO I DO NOW?

  • Java runtime for servers

    Hello all, not too familiar with these terms. I was wondering what does server runtime mean? Assuming i want to develop a SIP application server, what should i get in terms of runtime? My understanding is that runtime is the JVM and it varies dependi

  • First play runs twice

    I am trying to make a DVD that plays titles then loops back to the beginning. I have my first video set as first play when the disk is inserted. The first play will run twice, then go into the loop on the second play. From there on out it behaves as