Prosím o pomoc, je to OOP? – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prosím o pomoc, je to OOP? – .NET – Fórum – Programujte.comProsím o pomoc, je to OOP? – .NET – Fórum – Programujte.com

 

marpit0
Stálý člen
13. 10. 2009   #1
-
0
-

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Ctverec c = new Ctverec();
c.Obsah(10,15);
c.Obvod(10,15);
textBox1.Text = c.obvod.ToString();
textBox2.Text = c.obsah.ToString();
}
}

public class Ctverec
{
public int obvod, obsah;

public void Obvod(int a, int b)
{
obvod = 2 * a + 2 * b;
}

public void Obsah(int a, int b)
{
obsah = a * b;
}
}
}


Děkuju moc.

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
SeraphCZ0
Stálý člen
13. 10. 2009   #2
-
0
-

Ano

Nahlásit jako SPAM
IP: 85.71.98.–
marpit0
Stálý člen
13. 10. 2009   #3
-
0
-

To SeraphCZ : Tedka se sam učím, tak mě zajímalo, jestli jsem to správně pochopil. Nenasekal jsem tam moc chyb? Také s public a pribvate si nejsem moc jistý.

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
Nosko0
Stálý člen
13. 10. 2009   #4
-
0
-

public class Ctverec 

{
public int stranaA, stranaB;

public void Ctverec(int a, int b)
{
this.stranaA=a;
this.stranaB=b;
}

public void Ctverec()
{
this.stranaA=10;
this.stranaB=10;
}

public int Obvod()
{
return 2 * this.stranaA + 2 * this.stranaB;
}

public int Obsah(int a, int b)
{
return this.stranaA * this.stranaB;
}
}

Ctverec c = new Ctverec(10,15);
textBox1.Text = c.Obvod().ToString();
textBox2.Text = c.Obsah().ToString();


Ja by som to spravil takto. Tie fcie na nastavenie obvodu, obsahu sú podľa mňa zbytočné. C# nerobím, tak snáď je to dobre :)

Nahlásit jako SPAM
IP: 84.16.37.–
marpit0
Stálý člen
13. 10. 2009   #5
-
0
-

To Nosko :

public int Obvod() 


{

return 2 * this.stranaA + 2 * this.stranaB;

}


Nemělo by tam být také int a a int b? Jinak tenhle postup mi připadá nějak složitý, ale popřemýšlím, neco podobného jsem viděl na netu, ale moc jsem neporozuměl.

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
SeraphCZ0
Stálý člen
13. 10. 2009   #6
-
0
-

public znamená veřejný tzn. to jsou metody a atributy viditelne z venku třídy.
private znamená soukromý a to jsou zase metody a atributy ktere jsou viditelné(tzn. dají se použít) jen ve vnitřku třídy.
Chybu tam zadnou nemas . Napisu ti jak bych to napsat ja(dela to to samy):



public class Obdelnik
{
private int a,b; //delky stran
public Obdelnik(int a,int b) // konstruktor nastavi delky
{
this.a = a;
this.b = b;
}

public int getObvod()
{
return 2*(a+b);
}

public int getObsah()
{
return a*b;
}
}
/*
Nakonec to pouzijes takhle:
Obdelnik obdelnik = new Obdelnik(delka_prvni_strany,delka_druhe_strany);
*/

Nahlásit jako SPAM
IP: 85.71.98.–
marpit0
Stálý člen
13. 10. 2009   #7
-
0
-

A jsou oba dva postupy správné? nebudu mít třeba prblémy při psaní složitějších aplikací?
Jak jsi to napsal, tak je to přehledné, děkuju.

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
SeraphCZ0
Stálý člen
13. 10. 2009   #8
-
0
-

jeste by tam meli byt gettery a settery k a a b
Rozumis alespon trochu tomu co znamena Objekt nebo Třída? Ta Noskova metoda nemusi mit int a ,int b protoze si parametry bere z členských proměnných stranaA a stranaB.

Nahlásit jako SPAM
IP: 85.71.98.–
marpit0
Stálý člen
14. 10. 2009   #9
-
0
-

To SeraphCZ : Teoreticky tomu rozimím, akorat prakticky je to horší. get a set jak píšeš tam být nemusí, kompilátor to sám přiřadí, ne?
U Noska nechápu, že v jedno, výpočtu to int ma a v druhem už nikoliv.

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
Nosko
~ Anonymní uživatel
140 příspěvků
Nahlásit jako SPAM
IP: 147.175.157.–
SeraphCZ0
Stálý člen
14. 10. 2009   #11
-
0
-

Nikdy by se nemelo pristupovat k atributum primo ale pres pristupove metody.

Nahlásit jako SPAM
IP: 195.113.124.–
marpit0
Stálý člen
14. 10. 2009   #12
-
0
-

a jak dál?

 private void button1_Click(object sender, EventArgs e)

{
Obdelnik o = new Obdelnik(10, 15);
textBox1.Text = o.Obsah(); //tady nevím
}


Je to postup od SeraphCZ.

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
marpit0
Stálý člen
14. 10. 2009   #13
-
0
-

Omlouvám se, už vím textBox1.Text = o.Obsah().ToString();

Nahlásit jako SPAM
IP: 78.102.211.–
MarPit
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 67 hostů

Podobná vlákna

C / C++ → Prosim pomoc — založil Nory

Prosím pomoc — založil Michal

Prosim o pomoc — založil bbeni

C++- Prosím o pomoc !!! — založil Martin2510

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý