Skip to content

Commit 5ac9215

Browse files
committed
Proje dosyası ekle.
1 parent 81fd2b4 commit 5ac9215

File tree

104 files changed

+4900
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+4900
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+
<PropertyGroup>
5+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7+
<ProjectGuid>{47F1C1F1-C690-4173-A554-99371553F84A}</ProjectGuid>
8+
<OutputType>WinExe</OutputType>
9+
<RootNamespace>Abstract_Soyutlama</RootNamespace>
10+
<AssemblyName>Abstract_Soyutlama</AssemblyName>
11+
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
12+
<FileAlignment>512</FileAlignment>
13+
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
14+
<Deterministic>true</Deterministic>
15+
</PropertyGroup>
16+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
17+
<PlatformTarget>AnyCPU</PlatformTarget>
18+
<DebugSymbols>true</DebugSymbols>
19+
<DebugType>full</DebugType>
20+
<Optimize>false</Optimize>
21+
<OutputPath>bin\Debug\</OutputPath>
22+
<DefineConstants>DEBUG;TRACE</DefineConstants>
23+
<ErrorReport>prompt</ErrorReport>
24+
<WarningLevel>4</WarningLevel>
25+
</PropertyGroup>
26+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
27+
<PlatformTarget>AnyCPU</PlatformTarget>
28+
<DebugType>pdbonly</DebugType>
29+
<Optimize>true</Optimize>
30+
<OutputPath>bin\Release\</OutputPath>
31+
<DefineConstants>TRACE</DefineConstants>
32+
<ErrorReport>prompt</ErrorReport>
33+
<WarningLevel>4</WarningLevel>
34+
</PropertyGroup>
35+
<ItemGroup>
36+
<Reference Include="System" />
37+
<Reference Include="System.Core" />
38+
<Reference Include="System.Xml.Linq" />
39+
<Reference Include="System.Data.DataSetExtensions" />
40+
<Reference Include="Microsoft.CSharp" />
41+
<Reference Include="System.Data" />
42+
<Reference Include="System.Deployment" />
43+
<Reference Include="System.Drawing" />
44+
<Reference Include="System.Net.Http" />
45+
<Reference Include="System.Windows.Forms" />
46+
<Reference Include="System.Xml" />
47+
</ItemGroup>
48+
<ItemGroup>
49+
<Compile Include="Form1.cs">
50+
<SubType>Form</SubType>
51+
</Compile>
52+
<Compile Include="Form1.Designer.cs">
53+
<DependentUpon>Form1.cs</DependentUpon>
54+
</Compile>
55+
<Compile Include="Models\Abstract\MuzikAletleri.cs" />
56+
<Compile Include="Models\Concrete\Gitar.cs" />
57+
<Compile Include="Program.cs" />
58+
<Compile Include="Properties\AssemblyInfo.cs" />
59+
<EmbeddedResource Include="Properties\Resources.resx">
60+
<Generator>ResXFileCodeGenerator</Generator>
61+
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
62+
<SubType>Designer</SubType>
63+
</EmbeddedResource>
64+
<Compile Include="Properties\Resources.Designer.cs">
65+
<AutoGen>True</AutoGen>
66+
<DependentUpon>Resources.resx</DependentUpon>
67+
</Compile>
68+
<None Include="Properties\Settings.settings">
69+
<Generator>SettingsSingleFileGenerator</Generator>
70+
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
71+
</None>
72+
<Compile Include="Properties\Settings.Designer.cs">
73+
<AutoGen>True</AutoGen>
74+
<DependentUpon>Settings.settings</DependentUpon>
75+
<DesignTimeSharedInput>True</DesignTimeSharedInput>
76+
</Compile>
77+
</ItemGroup>
78+
<ItemGroup>
79+
<None Include="App.config" />
80+
</ItemGroup>
81+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
82+
</Project>

Abstract_Soyutlama/App.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
5+
</startup>
6+
</configuration>

Abstract_Soyutlama/Form1.Designer.cs

Lines changed: 40 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Abstract_Soyutlama/Form1.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.ComponentModel;
4+
using System.Data;
5+
using System.Drawing;
6+
using System.Linq;
7+
using System.Text;
8+
using System.Threading.Tasks;
9+
using System.Windows.Forms;
10+
11+
namespace Abstract_Soyutlama
12+
{
13+
public partial class Form1 : Form
14+
{
15+
public Form1()
16+
{
17+
InitializeComponent();
18+
}
19+
}
20+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace Abstract_Soyutlama.Models.Abstract
8+
{//C#'da soyutlama uygulamanın iki yolu vardır. Bunlar abstract sınıflar ve infterface'lerdir.
9+
10+
//Bir sınıfı abstract keyword'ü ile işaretlersek sınıfı soyutlaştırmış oluruz.
11+
internal abstract class MuzikAletleri
12+
{
13+
//Uygulamalarımızda abstract ata sınıfları kullanmamızdaki birincil amaç kalıtım ile bir birlerine bağlanan yani birbirlerine referance veren sınıfları kendi aralarında gevşek bağlı (loose couple) bir şeklde kullanmaktır. Soyutlama loose couple sınıflar elde etmek için sadece birinci adımdır. Soyutlama kullanıyorum artık çok gevşek bağlı rahat extend edilebilir sınıflarım var diye düşünmeyin. Daha uyacağımız çok fazla prensip ve desen var. Dediğim gibi soyutlama sadece birinci adımdır.
14+
15+
//Abstract sınıf kullanmadaki bir diğer amaç, ilgili soyut sınıftan kalıtım alan alt sınıflara kural koymaktır. Bu açıdan düşünecek olursak üst sınıflar ile alt sınıflar arasında sözleşme imzalıyoruz.
16+
17+
//Soyut sınıfların amacı kalıtım vermektir. Soyut sınıflardan örneklem (instance) çıkarılmaz.
18+
19+
//Abstract sınıflar static olarak işaretlenemezler. Çünkü static sınıflar kalıtım almazlar, kalıtım vermezler. Abstract sınıfların amacı kalıtım vermektir.
20+
21+
//Abstract sınıflar private olarak işaretlenemez. Çünkü amaçları kaltım vermektir.
22+
23+
24+
//Abstract olarak işaretlenmiş bir sınıftaki her hangi bir üyeyi abstract olarak işaretlersek bu üye alt sınıflarda override edilmek zorundadır. BU zorunluluk abstract sınıfların kural koyma özelliğinin kendisidir.
25+
public abstract string Sound(); //Not: abstract olarak işaretlenmiş method yada functionların gövdesi olmaz. Çünkü bu method yada fonksiyonlar alt sınıflarda görev ve yeteneklerini kazanacaktır.
26+
27+
//Not: Override: Method yada fuction override etmek, onları alt sınıflarda farklı farklı kullanımlara hazrılamak demektir. Yukarıda abstract olarak işaretlenmiş "Sound()" fonksiyonum her bir alt sınıfta override edilerek, farklı farklı görevler icra edecektir. Override terimini türkçe kaynaklarda ezmek olarak geçmektedir.
28+
29+
//Yukarıdaki bilgi ışığında düşünecek olursak zaten override edeceğim yani alt sınıflarda yetenek kazandıracağım bir methoda niye burada gövde kazandırayım değil mi?
30+
31+
//Abstract bir sınıf içerisinde abstract olarak işaretlenmemiş üyeler override edilmeye zorunlu değildir. Bu özelliği ile abstract sınıfların concrete yani somut gibi davranabildiği ortaya çıkmaktadır.
32+
public int Id { get; set; }
33+
public string Brand { get; set; }
34+
public string Model { get; set; }
35+
36+
//Buradaki virtual keyword'ü fonksiyonumuzu alt sınıflarda override edilebilir hale getirmektedir. Peki abstact olarak işaretlenmiş method'tan farkı nedir? Abstract olarak işaretlenmiş method override edilmeye zorunludur. Lakin virtual olarak işaretlenmiş method override edilmeye zorunlu değildir. Override edilebilme opsiyonuna sahiptir.
37+
public virtual string AkortEtmek()
38+
{
39+
//Buradaki düşünce şu, bütün müzik aletleri akort edilmez. Bu bağlamda AkortEtmek() foksiyonunu override edilmeye zorunlu tutmadık. Bazı alt sınıflarda ihtiyaç olabilir ve burada kazandığı yetenek ile kullanılabilinir. Kimi sınıflarda override edilerek farklı yetenek kaznadırılabilinir. Bu opsiyonu yüzünden abstact olarak işaretlemek yerine virtual olarak işaretledik. İhtiyaç varsa override edilecek yoksa edilmeyecek. Abstact işaretleseydim override edilemeye zorunlu olacaktı ve default bir yetenek veremeyecektim.
40+
return "Akort işlemi yapılmasına gerek yoktur..!";
41+
}
42+
}
43+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Abstract_Soyutlama.Models.Abstract;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace Abstract_Soyutlama.Models.Concrete
9+
{
10+
11+
internal class Gitar:MuzikAletleri
12+
{
13+
//MuzikAleti sınıfından kalıtım alan Gitar.cs sınıfı bize ilk etapta kızdı. Sakin bir şekilde hatının üzerine geldiğimde Sound() fonksiyonunu implement edilmediğininden ötürü kızdığını dördük. Bu hatayı düzeltmek için ata sınıftan gelen bu kuralı bu alt sınıfta uyguladık (implement). Ayrıca burada dikkat etmemiz gereken diğer bir husus ise override edilen methodun ihtiyacıma yönelik olarak yetenek kazandırılmasıdır.
14+
15+
16+
public override string Sound()
17+
{
18+
return "Gitar sesi..!";
19+
}
20+
21+
//Gitar akort edilmesi gereken bir enstrüman olduğundan AkortEtmek() fonksiyonunu burada çağırıyorum. Bu fonksiyon bize bir yetenek ile gelecek var olan yeteneğini ezip ihityacıma göre bir yetenek kazandırıyorum.
22+
23+
public override string AkortEtmek()
24+
{
25+
return "Gitar akort edildi..! Kullanıma hazır..!";
26+
}
27+
28+
//Gitar sınıfının ihityacı olan spesikik özellik ve yetenekler burada yazılmalıdır.
29+
public string TelTuru { get; set; }
30+
31+
}
32+
}

Abstract_Soyutlama/Program.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using System.Windows.Forms;
6+
7+
namespace Abstract_Soyutlama
8+
{
9+
internal static class Program
10+
{
11+
/// <summary>
12+
/// Uygulamanın ana girdi noktası.
13+
/// </summary>
14+
[STAThread]
15+
static void Main()
16+
{
17+
Application.EnableVisualStyles();
18+
Application.SetCompatibleTextRenderingDefault(false);
19+
Application.Run(new Form1());
20+
}
21+
}
22+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// Bir bütünleştirilmiş koda ilişkin Genel Bilgiler aşağıdaki öznitelikler kümesiyle
6+
// denetlenir. Bütünleştirilmiş kod ile ilişkili bilgileri değiştirmek için
7+
// bu öznitelik değerlerini değiştirin.
8+
[assembly: AssemblyTitle("Abstract_Soyutlama")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("")]
12+
[assembly: AssemblyProduct("Abstract_Soyutlama")]
13+
[assembly: AssemblyCopyright("Copyright © 2022")]
14+
[assembly: AssemblyTrademark("")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// ComVisible özniteliğinin false olarak ayarlanması bu bütünleştirilmiş koddaki türleri
18+
// COM bileşenleri için görünmez yapar. Bu bütünleştirilmiş koddaki bir türe
19+
// erişmeniz gerekirse ComVisible özniteliğini o türde true olarak ayarlayın.
20+
[assembly: ComVisible(false)]
21+
22+
// Bu proje COM'un kullanımına sunulursa, aşağıdaki GUID tür kitaplığının kimliği içindir
23+
[assembly: Guid("47f1c1f1-c690-4173-a554-99371553f84a")]
24+
25+
// Bir derlemenin sürüm bilgileri aşağıdaki dört değerden oluşur:
26+
//
27+
// Ana Sürüm
28+
// İkincil Sürüm
29+
// Yapı Numarası
30+
// Düzeltme
31+
//
32+
// Tüm değerleri belirtebilir veya varsayılan Derleme ve Düzeltme Numaralarını kullanmak için
33+
// aşağıda gösterildiği gibi '*' kullanabilirsiniz:
34+
// [assembly: AssemblyVersion("1.0.*")]
35+
[assembly: AssemblyVersion("1.0.0.0")]
36+
[assembly: AssemblyFileVersion("1.0.0.0")]

Abstract_Soyutlama/Properties/Resources.Designer.cs

Lines changed: 71 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)