Java's interfaces substituting multiple inheritance

Niiranen, Sami Javan liittymät moniperinnän korvaajana Jyväskylä: Jyväskylän yliopisto, 2013, 25 s. Tietojärjestelmätiede, Kandidaatintutkielma Ohjaaja(t): Hirvonen, Pertti Tässä kandidaatintutkielmassa käsitellään ohjelmointikielissä esiintyvän liittymän (interface) ja moniperinnän (multiple inheri...

Full description

Bibliographic Details
Main Author: Niiranen, Sami
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, University of Jyväskylä, Jyväskylän yliopisto
Format: Bachelor's thesis
Language:eng
Published: 2013
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/41389
_version_ 1826225790131372032
author Niiranen, Sami
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto
author_facet Niiranen, Sami Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto Niiranen, Sami Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto
author_sort Niiranen, Sami
datasource_str_mv jyx
description Niiranen, Sami Javan liittymät moniperinnän korvaajana Jyväskylä: Jyväskylän yliopisto, 2013, 25 s. Tietojärjestelmätiede, Kandidaatintutkielma Ohjaaja(t): Hirvonen, Pertti Tässä kandidaatintutkielmassa käsitellään ohjelmointikielissä esiintyvän liittymän (interface) ja moniperinnän (multiple inheritance) eroja. Java-ohjelmointikieli ei tue moniperintää, vaan käyttää vaihtoehtoisesti liittymiä mallintamaan monimutkaisempia rakenteita. Tutkielmassa asetetaan molemmat tekniikat vastakkain ja havainnollistetaan niiden avainerot esimerkkien avulla. Oliosuuntautunut suunnittelu Javan liittymiä käyttäen on tutkielmassa isossa osassa. Tutkielma perehtyy myös ohjelmointikielten historiaan kyseisten tekniikoiden osalta, ja kuinka laajasti liittymiä käytetään Java-alustassa. Tutkimuksen pohjana on käytetty ohjelmointikirjallisuutta ja lähteitä oliosuuntautuneesta suunnittelusta. Esitettyjä käsitteitä havainnollistetaan kaavioilla ja käytännön esimerkeillä. Tutkielma edellyttää perustietämystä olio-ohjelmoinnista. Tutkielman johtopäätökset luodaan erilaisten skenaarioiden pohjalta, joista nähdään molempien tekniikoiden hyvät ja huonot puolet. Tutkielmassa pyritään tarjoamaan ylläpidettäviä ja laajennettavia ratkaisuja oliosuuntautuneessa suunnittelussa ilmeneviin ongelmiin, mutta myös vaihtoehtoisia lähestymistapoja. Niiranen, Sami Java's interfaces substituting multiple inheritance Jyväskylä: University of Jyväskylä, 2013, 25 p. Information Systems Science, Bachelor's Thesis Supervisor(s): Hirvonen, Pertti This thesis' purpose is to address the difference between programming language concepts interface and multiple inheritance. The Java -programming language does not support multiple inheritance, but rather relies on interfaces to simulate more complex hierarchies. The thesis compares these techniques against each other, and elaborates the key differences through examples. Using interfaces in objectoriented design plays a big part in the thesis. The thesis also delves in to the history of programming languages regarding these techniques, and examines the current use of interfaces in the Java platform. Programming literature and several object-oriented design sources have been used to construct the thesis. Concepts in the thesis are described more thoroughly with diagrams and practical examples. Basic knowledge of object-oriented programming is required from the reader. Conclusions in the thesis are made based upon different scenarios, that are meant to describe both advantages and disadvantages of the techniques. The thesis strives to offer maintainable and extendable solutions to recurring problems in object-oriented design, but to also give examples of alternative approaches.
first_indexed 2013-05-14T20:03:28Z
format Kandityö
fullrecord [{"key": "dc.contributor.author", "value": "Niiranen, Sami", "language": null, "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2013-05-14T04:48:34Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2013-05-14T04:48:34Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2013", "language": null, "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/41389", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Niiranen, Sami\nJavan liittym\u00e4t moniperinn\u00e4n korvaajana\nJyv\u00e4skyl\u00e4: Jyv\u00e4skyl\u00e4n yliopisto, 2013, 25 s.\nTietoj\u00e4rjestelm\u00e4tiede, Kandidaatintutkielma\nOhjaaja(t): Hirvonen, Pertti\nT\u00e4ss\u00e4 kandidaatintutkielmassa k\u00e4sitell\u00e4\u00e4n ohjelmointikieliss\u00e4 esiintyv\u00e4n\nliittym\u00e4n (interface) ja moniperinn\u00e4n (multiple inheritance) eroja.\nJava-ohjelmointikieli ei tue moniperint\u00e4\u00e4, vaan k\u00e4ytt\u00e4\u00e4 vaihtoehtoisesti\nliittymi\u00e4 mallintamaan monimutkaisempia rakenteita. Tutkielmassa\nasetetaan molemmat tekniikat vastakkain ja havainnollistetaan\nniiden avainerot esimerkkien avulla. Oliosuuntautunut suunnittelu Javan\nliittymi\u00e4 k\u00e4ytt\u00e4en on tutkielmassa isossa osassa. Tutkielma perehtyy\nmy\u00f6s ohjelmointikielten historiaan kyseisten tekniikoiden osalta,\nja kuinka laajasti liittymi\u00e4 k\u00e4ytet\u00e4\u00e4n Java-alustassa.\nTutkimuksen pohjana on k\u00e4ytetty ohjelmointikirjallisuutta ja l\u00e4hteit\u00e4\noliosuuntautuneesta suunnittelusta. Esitettyj\u00e4 k\u00e4sitteit\u00e4 havainnollistetaan\nkaavioilla ja k\u00e4yt\u00e4nn\u00f6n esimerkeill\u00e4. Tutkielma edellytt\u00e4\u00e4\nperustiet\u00e4myst\u00e4 olio-ohjelmoinnista.\nTutkielman johtop\u00e4\u00e4t\u00f6kset luodaan erilaisten skenaarioiden pohjalta,\njoista n\u00e4hd\u00e4\u00e4n molempien tekniikoiden hyv\u00e4t ja huonot puolet.\nTutkielmassa pyrit\u00e4\u00e4n tarjoamaan yll\u00e4pidett\u00e4vi\u00e4 ja laajennettavia ratkaisuja\noliosuuntautuneessa suunnittelussa ilmeneviin ongelmiin,\nmutta my\u00f6s vaihtoehtoisia l\u00e4hestymistapoja.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Niiranen, Sami\nJava's interfaces substituting multiple inheritance\nJyv\u00e4skyl\u00e4: University of Jyv\u00e4skyl\u00e4, 2013, 25 p.\nInformation Systems Science, Bachelor's Thesis\nSupervisor(s): Hirvonen, Pertti\nThis thesis' purpose is to address the difference between programming\nlanguage concepts interface and multiple inheritance. The Java\n-programming language does not support multiple inheritance, but\nrather relies on interfaces to simulate more complex hierarchies. The\nthesis compares these techniques against each other, and elaborates\nthe key differences through examples. Using interfaces in objectoriented\ndesign plays a big part in the thesis. The thesis also delves in\nto the history of programming languages regarding these techniques,\nand examines the current use of interfaces in the Java platform.\nProgramming literature and several object-oriented design sources\nhave been used to construct the thesis. Concepts in the thesis are\ndescribed more thoroughly with diagrams and practical examples.\nBasic knowledge of object-oriented programming is required from the\nreader.\nConclusions in the thesis are made based upon different scenarios,\nthat are meant to describe both advantages and disadvantages\nof the techniques. The thesis strives to offer maintainable and extendable\nsolutions to recurring problems in object-oriented design,\nbut to also give examples of alternative approaches.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted using Plone Publishing form by Seija Paananen (sepaanan) on 2013-05-14 04:48:33.798915. Form: Admin-lomake rajoitetuille kandidaatintutkielmille (https://kirjasto.jyu.fi/julkaisut/julkaisulomakkeet/admin-lomake-rajoitetuille-kandeille). JyX data:", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by jyx lomake-julkaisija (jyx-julkaisija@noreply.fi) on 2013-05-14T04:48:34Z\nNo. of bitstreams: 2\nURN:NBN:fi:jyu-201305141621.pdf: 150433 bytes, checksum: 609113595dbbe688d75b131ac2a72f01 (MD5)\nlicense.html: 107 bytes, checksum: a7d86e598caa500b1b433bbb9dc8ef1c (MD5)", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2013-05-14T04:48:34Z (GMT). No. of bitstreams: 2\nURN:NBN:fi:jyu-201305141621.pdf: 150433 bytes, checksum: 609113595dbbe688d75b131ac2a72f01 (MD5)\nlicense.html: 107 bytes, checksum: a7d86e598caa500b1b433bbb9dc8ef1c (MD5)\n Previous issue date: 2013", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "25", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "eng", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "Java", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "multiple inheritance", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "interface", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "architecture", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "design", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "liittym\u00e4", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "moniperint\u00e4", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "arkkitehtuuri", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "suunnittelu", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Java's interfaces substituting multiple inheritance", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "bachelor thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201305141621", "language": null, "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.dcmitype", "value": "Text", "language": "en", "element": "type", "qualifier": "dcmitype", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Kandidaatintutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Bachelor's thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietoj\u00e4rjestelm\u00e4tiede", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Information Systems Science", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.date.updated", "value": "2013-05-14T04:48:34Z", "language": null, "element": "date", "qualifier": "updated", "schema": "dc"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_7a1f", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "restrictedAccess", "language": "fi", "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "bachelorThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "This material has a restricted access due to copyright reasons. It can be read at the department responsible for publication of the thesis, or at the archival workstation at Jyv\u00e4skyl\u00e4 University Library: https://kirjasto.jyu.fi/en/workspaces/facilities.", "language": "en", "element": "rights", "qualifier": "accessrights", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "Luettavissa tekij\u00e4noikeudellisista syist\u00e4 vain opinn\u00e4ytteen julkaisseella laitoksella ja Jyv\u00e4skyl\u00e4n yliopiston kirjaston arkistoty\u00f6asemalta. Ks. https://kirjasto.jyu.fi/fi/tyoskentelytilat/laitteet-ja-tilat.", "language": "fi", "element": "rights", "qualifier": "accessrights", "schema": "dc"}]
id jyx.123456789_41389
language eng
last_indexed 2025-02-18T10:55:44Z
main_date 2013-01-01T00:00:00Z
main_date_str 2013
publishDate 2013
record_format qdc
source_str_mv jyx
spellingShingle Niiranen, Sami Java's interfaces substituting multiple inheritance Java multiple inheritance interface architecture design liittymä moniperintä arkkitehtuuri suunnittelu Tietojärjestelmätiede Information Systems Science
title Java's interfaces substituting multiple inheritance
title_full Java's interfaces substituting multiple inheritance
title_fullStr Java's interfaces substituting multiple inheritance Java's interfaces substituting multiple inheritance
title_full_unstemmed Java's interfaces substituting multiple inheritance Java's interfaces substituting multiple inheritance
title_short Java's interfaces substituting multiple inheritance
title_sort java s interfaces substituting multiple inheritance
title_txtP Java's interfaces substituting multiple inheritance
topic Java multiple inheritance interface architecture design liittymä moniperintä arkkitehtuuri suunnittelu Tietojärjestelmätiede Information Systems Science
topic_facet Information Systems Science Java Tietojärjestelmätiede architecture arkkitehtuuri design interface liittymä moniperintä multiple inheritance suunnittelu
url https://jyx.jyu.fi/handle/123456789/41389 http://www.urn.fi/URN:NBN:fi:jyu-201305141621
work_keys_str_mv AT niiranensami javasinterfacessubstitutingmultipleinheritance