| 情報学部 | 菅沼ホーム | 目次 | 索引 | 
class クラス名 [ : [アクセス権] 基底クラス名 [,[アクセス権] 基底クラス名・・・]] { private: int x; // プライベートメンバー変数 double fun1(int); // プライベートメンバー関数 protected: int y; // 派生クラスだけが使用可能なメンバー変数 double fun2(int); // 派生クラスだけが使用可能なメンバー関数 public: int z; // パブリックメンバー変数 // コンストラクタ クラス名 (引数リスト) : 基底クラス名(パラメータリスト), ・・・ { このクラスに必要な初期設定 } double fun3(int); // パブリックメンバー関数 friend double fun4(int); // フレンド関数 friend class Example2; // フレンドクラス };
Example t1(1, 2); Example t2 = t1; Example *p1 = new Example(1, 2); Example *p2 = p1;
[クラス修飾子] class クラス名[ extends スーパークラス名] [implements 親インタフェース名 [ , ・・・ ]] { [変数修飾子] データ型 変数名,・・・; ・・・・・ // コンストラクタ クラス名 (...) { super(...); // スーパークラスのコンストラクタ コンストラクタにおける処理 } ・・・・・ [関数修飾子] 関数の型 関数名 (引数の並び) { 関数における処理 } ・・・・・ }
Example p1 = new Example(1, 2); Example p2 = p1;
--- Complex オブジェクト ---
function Complex(a, b) { this.x = a; this.y = b; } // Complex オブジェクトのメンバー関数 add Complex.prototype.add = function(b) { let cp = new Complex(this.x + b.x, this.y + b.y); return cp; }
--- Complex クラス ---
class Complex [ extends 基底クラス名] {
	#x = 0;
	#y = 0;
			// コンストラクタ
	constructor(a, b)
	{
		this.s = "Complex";
		this.#x = a;
		this.#y = b;
	}
			// メソッド add
	add = function(b)
	{
		let cp = new Complex(this.#x + b.#x, this.#y + b.#y);
		return cp;
	}
			// メソッド out1( x や y を出力するため)
	out1 = function()
	{
		document.write("add = (" + this.#x + " , " + this.#y + ")<BR>\n");
	}
			// メソッド out2
	out2 = function()
	{
		document.write("s = " + this.s + "<BR>\n");
	}
}
/*
			// メソッド out2(このように,クラス定義の外に記述することも可)
Complex.prototype.out2 = function()   // 「 Complex.prototype. 」の部分が異なる
{
	document.write("s = " + this.s + "<BR>\n");
}
*/
			var p1 = new Example(1, 2); var p2 = p1;
class クラス名[ extends 基底クラス名] { 変数名,・・・; ・・・・・ // コンストラクタ function クラス名 (...) { parent::基底クラス名(...); // 基底クラスクラスのコンストラクタ コンストラクタにおける処理 } ・・・・・ function 関数名 (引数の並び) { 関数における処理 } ・・・・・ }
$p1 = new Example(1, 2); $p2 = $p1;
class クラス名 [ < スーパークラス名 ] // コンストラクタ def initialize(...) { super(...); // スーパークラスのコンストラクタ コンストラクタにおける処理 } ・・・・・ 式(演算式,関数,クラスなど) ・・・ end
p1 = Example.new(1, 2); p2 = p1;
class クラス名 [(基底クラス名,・・・)] : 変数名 ・・・・・ // コンストラクタ def __init__(self,...) { 基底クラス名.__init__(self,...); // 基底クラスのコンストラクタ コンストラクタにおける処理 } ・・・・・ def 関数名 (self, 引数の並び) : 関数における処理 ・・・・・
p1 = Example(1, 2, 3) p2 = p1 p3 = copy.copy(p1) p4 = copy.deepcopy(p1)
# -*- coding: UTF-8 -*-
import copy
############################
# リスト構造               #
#      coded by Y.Suganuma #
############################
#*******************/
# クラスListの定義 */
#*******************/
class List :
			# コンストラクタ
	def __init__(self, s = "") :
		self.st   = s   # データ(文字列)
		self.next = None   # 次のデータ
	#*************************************/
	# データの追加                       */
	#      dt : Listクラスのオブジェクト */
	#*************************************/
	def add(self, dt) :
		lt2 = self
		sw  = 1
		while sw > 0 :
					# 最後に追加
			if lt2.next == None :
				lt2.next = dt
				sw       = 0
					# 比較し,途中に追加
			else :
				lt1 = lt2
				lt2 = lt2.next
				if dt.st < lt2.st :   # 追加
					dt.next  = lt2
					lt1.next = dt
					sw       = 0
	#********************/
	# データの削除      */
	#      st1 : 文字列 */
	#********************/
	def delete(self, st1) :
		lt2 = self
		sw  = 1
		while sw > 0 :
					# データが存在しない場合
			if lt2.next == None :
				print("      指定されたデータがありません!")
				sw = 0
					# 比較し,削除
			else :
				lt1 = lt2
				lt2 = lt2.next
				if st1 == lt2.st :   # 削除
					lt1.next = lt2.next
					sw       = 0
	#*********************/
	# リストデータの出力 */
	#*********************/
	def output(self) :
		nt = self.next
		while nt != None :
			print("   data =", nt.st)
			nt = nt.next
name1 = List ()
sw    = 1
while sw > 0 :
	str = input("1:追加,2:削除,3:出力,0:終了? ")
	sw  = int(str)
	if sw == 1 :   # 追加
		str = input("   データを入力してください ")
		lt  = List (str)
		name1.add(lt)
	elif sw == 2 :   # 削除
		str = input("   データを入力してください ")
		name1.delete(str)
	elif sw == 3 :   # 出力
		name1.output()
	else :   # 終了
		sw = 0
name2 = name1
name3 = copy.copy(name1)
name4 = copy.deepcopy(name1)
name1.delete("str")
print("name1")
name1.output()
print("name2")
name2.output()
print("name3")
name3.output()
print("name4")
name4.output()
			
[ クラス修飾子 ] class クラス名 [ : 基底クラス名 ] { [ メンバー修飾子 ] データ型 変数名,・・・; ・・・・・ // コンストラクタ [ メンバー修飾子 ] クラス名(...) : base(..) { // base は基底クラスのコンストラクタ コンストラクタにおける処理 } ・・・・・ [ メンバー修飾子 ] 関数の型 関数名 (引数の並び) { 関数における処理 } ・・・・・ }
Example p1 = new Example(1, 2); Example p2 = p1;
[ 修飾子 ] Class クラス名 [ Inherits 基底クラス ; ] 修飾子 変数名 As データ型 ; ' コンストラクタ [ [ 修飾子 ] Sub New (引数の並び) [ MyBase.new(...) ] ' 基底クラスのコンストラクタ コンストラクタにおける処理 End Sub ] ・・・・・ [ 修飾子 ] Sub / Function 関数名 (引数の並び) [ As 戻り値のデータ型 ] 関数における処理 End Sub / Function ・・・・・ End Class
Dim p1 As Example = new Example(1, 2) Dim p2 As Example = p1
001	/******************************/
002	/* クラスに対するプログラム例 */
003	/*      coded by Y.Suganuma   */
004	/******************************/
005	#include <stdio.h>
006	#include <iostream>
007	#include <string>
008	#include <vector>
009	
010	using namespace std;
011	
012	/**************/
013	/* クラス Win */
014	/**************/
015	class Win {
016			string BGC;   // 背景色
017		protected :
018			pair<int, int> size;   // サイズ(縦と横)
019		public :
020			static string name;   // 名前
021			vector<string> menu;   // メニュー
022				// コンストラクタ
023			Win(string s1, string s2) {
024				size = make_pair(100, 200);
025				BGC  = "white";
026				menu.push_back(s1);
027				menu.push_back(s2);
028			}
029				// 名前の取得
030			static string getName() { return name; }
031				// 背景色の取得
032			string getBGC();
033				// サイズの取得
034			pair<int, int> getSize() { return size; }
035	};
036	
037	/****************/
038	/* 背景色の取得 */
039	/****************/
040	string Win::getBGC()
041	{
042		return BGC;
043	}
044	
045	/**************/
046	/* クラス App */
047	/**************/
048	class App : public Win {   // クラス Win を継承
049	//		string BGC;   // 背景色
050		public :
051				// コンストラクタ
052			App(string s1, string s2) : Win(s1, s2) {
053				menu.push_back("other");
054			}
055				// サイズの変更
056			void setSize(int row, int col) { size = make_pair(row, col); }
057				// 背景色の変更と参照(基底クラスの private 変数にアクセスできない)
058	//		void setBGC(string col) { BGC = col; }
059			string getBGC() {
060	//			return BGC;
061				return Win::getBGC();
062			}
063	};
064	
065	string Win::name = "Window1";   // static 指定のため必要
066	
067	int main()
068	{
069				// クラス Win
070		cout << "Win_name : " << Win::name << endl;   // 名前,static 指定のため可
071		cout << "Win_name : " << Win::getName() << endl;   // 名前,static 変数だけを参照可
072		Win w1 = Win("file", "edit");
073		cout << "w1_name : " << w1.name << endl;   // 名前
074		cout << "w1_BGC : " << w1.getBGC() << endl;   // 背景色
075		pair<int, int> s = w1.getSize();   // サイズの取得
076		cout << "w1_size : " << s.first << " " << s.second << endl;
077		cout << "w1_menu : " << w1.menu[0] << " " << w1.menu[1] << endl;   // メニュー
078				// クラス App(クラス Win を継承)
079		cout << endl << "App_name : " << App::name << endl;   // 名前,Win クラスと同じ
080		App a1  = App("file", "edit");
081		a1.name = "Window2";
082		cout << "Win_name : " << Win::name << endl;   // 名前(Win)
083		cout << "App_name : " << App::name << endl;   // 名前(App)
084		cout << "a1_name : " << a1.name << endl;   // 名前(App)
085	//	a1.setBGC("red");   // 基底クラスの private 変数にアクセスできない
086		cout << "a1_BGC : " << a1.getBGC() << endl;   // 背景色
087		a1.setSize(200, 400);   // サイズの変更
088		s = a1.getSize();
089		cout << "a1_size : " << s.first << " " << s.second << endl;
090		cout << "w1_size : " << w1.getSize().first << " " << w1.getSize().second << endl;
091		cout << "a1_menu : " << a1.menu[0] << " " << a1.menu[1] << " " << a1.menu[2] << endl;   // メニュー
092				// new 演算子と代入
093		App a2 = a1;
094		cout << "\n前 a1_size : " << a1.getSize().first << " " << a1.getSize().second << endl;
095		cout << "   a2_size : " << a2.getSize().first << " " << a2.getSize().second << endl;
096		a1.setSize(300, 600);   // サイズの変更
097		cout << "後 a1_size : " << a1.getSize().first << " " << a1.getSize().second << endl;
098		cout << "   a2_size : " << a2.getSize().first << " " << a2.getSize().second << endl;
099	
100		App *b1 = new App("file", "edit");
101		App *b2 = b1;
102		cout << "前 b1_size : " << b1->getSize().first << " " << b1->getSize().second << endl;
103		cout << "   b2_size : " << b2->getSize().first << " " << b2->getSize().second << endl;
104		b1->setSize(400, 800);   // サイズの変更
105		cout << "後 b1_size : " << b1->getSize().first << " " << b1->getSize().second << endl;
106		cout << "   b2_size : " << b2->getSize().first << " " << b2->getSize().second << endl;
107	
108		return 0;
109	}
			
クラス名::静的メンバー変数名 クラス名::静的メンバー関数名
Win_name : Window1 // 070 行目 Win_name : Window1 // 071 行目 w1_name : Window1 // 073 行目 w1_BGC : white // 074 行目 w1_size : 100 200 // 076 行目 w1_menu : file edit // 077 行目 App_name : Window1 // 079 行目 Win_name : Window2 // 082 行目 App_name : Window2 // 083 行目 a1_name : Window2 // 084 行目 a1_BGC : white // 086 行目 a1_size : 200 400 // 089 行目 w1_size : 100 200 // 090 行目 a1_menu : file edit other // 091 行目 前 a1_size : 200 400 // 094 行目 a2_size : 200 400 // 095 行目 後 a1_size : 300 600 // 097 行目 a2_size : 200 400 // 098 行目 前 b1_size : 100 200 // 102 行目 b2_size : 100 200 // 103 行目 後 b1_size : 400 800 // 105 行目 b2_size : 400 800 // 106 行目
01	/******************************/
02	/* クラスに対するプログラム例 */
03	/*      coded by Y.Suganuma   */
04	/******************************/
05	import java.io.*;
06	import java.util.*;
07	
08	public class Test {
09		public static void main(String args[]) throws IOException
10		{
11				// クラス Win
12			System.out.printf("Win_name : %s\n", Win.name);   // 名前,static 指定のため可
13			System.out.printf("Win_name : %s\n", Win.getName());   // 名前,static 変数だけを参照可
14			Win w1 = new Win("file", "edit");
15			System.out.printf("w1_name : %s\n", w1.name);   // 名前
16			System.out.printf("w1_BGC : %s\n", w1.getBGC());   // 背景色
17			int s[] = w1.getSize();   // サイズの取得
18			System.out.printf("w1_size : %d %d\n", s[0], s[1]);
19			System.out.printf("w1_menu : %s %s\n", w1.menu.get(0), w1.menu.get(1));   // メニュー
20				// クラス App(クラス Win を継承)
21			System.out.printf("\nApp_name : %s\n", App.name);   // 名前,App.getName() でも可
22			App a1 = new App("file", "edit");
23			System.out.printf("a1_name : %s\n", a1.name);   // 名前
24	//		a1.setBGC("red");   // スーパークラスの private 変数にアクセスできない
25			System.out.printf("a1_BGC : %s\n", a1.getBGC());   // 背景色
26			a1.setSize(200, 400);   // サイズの変更
27			s = a1.getSize();
28			System.out.printf("a1_size : %d %d\n", s[0], s[1]);
29			System.out.printf("w1_size : %d %d\n", w1.getSize()[0], w1.getSize()[1]);
30			System.out.printf("a1_menu : %s %s %s\n", a1.menu.get(0), a1.menu.get(1), a1.menu.get(2));   // メニュー
31				// 代入
32			App a2 = a1;
33			System.out.printf("\n前 a1_size : %d %d\n", a1.getSize()[0],a1.getSize()[1]);
34			System.out.printf("   a2_size : %d %d\n", a2.getSize()[0],a2.getSize()[1]);
35			a1.setSize(300, 600);   // サイズの変更
36			System.out.printf("後 a1_size : %d %d\n", a1.getSize()[0],a1.getSize()[1]);
37			System.out.printf("   a2_size : %d %d\n", a2.getSize()[0],a2.getSize()[1]);
38		}
39	}
40	
41	/**************/
42	/* クラス Win */
43	/**************/
44	class Win {
45		final static String name = "Window1";   // 名前
46		private String BGC = "white";   // 背景色
47		protected int size[] = {100, 200};   // サイズ(縦と横)
48		ArrayList <String> menu = new ArrayList <String> ();   // メニュー
49				// コンストラクタ
50		Win (String s1, String s2) {
51			menu.add(s1);
52			menu.add(s2);
53		}
54				// 名前の取得
55		static String getName() { return name; }
56				// 背景色の取得
57		String getBGC() { return BGC; }
58				// サイズの取得
59		int[] getSize() { return size; }
60	}
61	
62	/**************/
63	/* クラス App */
64	/**************/
65	class App extends Win {   // クラス Win を継承
66	//	private String BGC;   // 背景色
67				// コンストラクタ
68		App(String s1, String s2) {
69			super(s1, s2);
70			menu.add("other");
71		}
72				// サイズの変更
73		void setSize(int row, int col) { size[0] = row; size[1] = col; }
74				// 背景色の変更(スーパークラスの private 変数にアクセスできない)
75	//	void setBGC(String col) { BGC = col; }
76	//	String getBGC() { return BGC; }
77	}
			
クラス名.静的メンバー変数名 クラス名.静的メンバー関数名
Win_name : Window1 // 12 行目 Win_name : Window1 // 13 行目 w1_name : Window1 // 15 行目 w1_BGC : white // 16 行目 w1_size : 100 200 // 18 行目 w1_menu : file edit // 19 行目 App_name : Window1 // 21 行目 a1_name : Window1 // 23 行目 a1_BGC : white // 25 行目 a1_size : 200 400 // 28 行目 w1_size : 100 200 // 29 行目 a1_menu : file edit other // 30 行目 前 a1_size : 200 400 // 33 行目 a2_size : 200 400 // 34 行目 後 a1_size : 300 600 // 36 行目 a2_size : 300 600 // 37 行目
01	<!DOCTYPE HTML>
02	<HTML>
03	<HEAD>
04		<TITLE>クラス</TITLE>
05		<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
06		<SCRIPT TYPE="text/javascript">
07			/******************************/
08			/* クラスに対するプログラム例 */
09			/*      coded by Y.Suganuma   */
10			/******************************/
11			function run() {
12						// クラス Win
13				let str = "Win_name : " + Win.name + "\n";   // 名前,static 指定のため可
14				str    += "Win_name : " + Win.getName() + "\n";
15				let w1  = new Win("file", "edit");
16	//			str    += "w1_name : " + w1.getName() + "\n";   // 許されない
17				str    += "w1_BGC : " + w1.getBGC() + "\n";   // 背景色
18				let s   = w1.getSize();   // サイズの取得
19				str    += "w1_size : " + s[0] + " " + s[1] + "\n";
20				str    += "w1_menu : " + w1.menu[0] + " " + w1.menu[1] + "\n";   // メニュー
21						// クラス App(クラス Win を継承)
22				str    += "App_name : " + App.getName() + "\n";
23				let a1  = new App("file", "edit");
24				str    += "Win_name : " + Win.getName() + "\n";
25				str    += "App_name : " + App.getName() + "\n";
26				a1.setBGC("red");
27				str    += "a1_BGC : " + a1.BGC + "\n";   // 背景色
28				str    += "w1_BGC : " + w1.getBGC() + "\n";   // 背景色
29				a1.setSize(200, 400);   // サイズの変更
30				s       = a1.getSize();   // サイズの取得
31				str    += "a1_size : " + s[0] + " " + s[1] + "\n";
32				str    += "a1_menu : " + a1.menu[0] + " " + a1.menu[1] + " " + a1.menu[2] + "\n";   // メニュー
33						// 代入
34				let w2     = w1;
35				str       += "前 w1_menu[0] : " + w1.menu[0] + "\n";
36				str       += "   w2_menu[0] : " + w2.menu[0] + "\n";
37				w1.menu[0] = "copy";
38				str       += "後 w1_menu[0] : " + w1.menu[0] + "\n";
39				str       += "   w2_menu[0] : " + w2.menu[0] + "\n";
40					// 結果の設定
41				document.getElementById("tx").value = str;
42			}
43	
44			/**************/
45			/* クラス Win */
46			/**************/
47			class Win {
48				static name = "Window1";   // 名前
49				#BGC  = "white";   // 背景色,クラス外(継承クラスを含む)からは参照不可
50	
51				constructor(s1, s2)
52				{
53					this.size = new Array(100, 200);   // サイズ(縦と横)
54					this.menu = new Array(s1, s2);   // メニュー
55				}
56	
57				static getName = function() { return this.name; }   // static 変数だけを参照可
58				getBGC = function() { return this.#BGC; }
59				getSize = function() { return this.size; }
60			}
61	
62			/**************/
63			/* クラス App */
64			/**************/
65			class App extends Win {   // クラス Win を継承
66				static name = "window2";   // 記述しないとクラス名が入る
67					// コンストラクタ
68				constructor(s1, s2) {
69					super(s1, s2);
70					this.menu[2] = "other";
71				}
72					// サイズの変更
73				setSize = function(row, col) { this.size[0] = row; this.size[1] = col; }
74					// 背景色の変更
75				setBGC = function(col) { this.BGC = col; }   //   BGC の定義も行われる
76				getBGC = function() { return this.BGC; }  // 記述しないと親の getBGC 利用
77			}
78		</SCRIPT>
79	</HEAD>
80	<BODY  STYLE="font-size:130%">
81		<P STYLE="text-align:center">
82			<INPUT TYPE="button" VALUE="OK" onClick="run()" STYLE="font-size:90%"><BR><BR>
83			<TEXTAREA TYPE="text" ID="tx" COLS="25" ROWS="5" STYLE="font-size: 100%"></TEXTAREA>
84		</P>
85	</BODY>
86	</HTML>
			
クラス名.静的メンバー変数名 クラス名.静的メンバー関数名
Win_name : Window1 // 13 行目 Win_name : Window1 // 14 行目 w1_BGC : white // 17 行目 w1_size : 100 200 // 19 行目 w1_menu : file edit // 20 行目 App_name : window2 // 22 行目 Win_name : Window1 // 24 行目 App_name : window2 // 25 行目 a1_BGC : red // 27 行目 w1_BGC : white // 28 行目 a1_size : 200 400 // 31 行目 a1_menu : file edit other // 32 行目 前 w1_menu[0] : file // 35 行目 w2_menu[0] : file // 36 行目 後 w1_menu[0] : copy // 38 行目 w2_menu[0] : copy // 39 行目
01	<?php
02		/****************************/
03		/* 関数に対するプログラム例 */
04		/*      coded by Y.Suganuma */
05		/****************************/
06				// クラス Win
07		printf("Win_name : %s\n", Win::$name);   // 名前,static 指定のため可
08		printf("Win_name : %s\n", Win::getName());   // 名前,static 変数だけを参照可
09		$w1 = new Win("file", "edit");
10	//	printf("w1_name : %s\n", $w1->name);   // 許されない
11		printf("w1_BGC : %s\n", $w1->getBGC());   // 背景色
12		$s = $w1->getSize();   // サイズの取得
13		printf("w1_size : %d %d\n", $s[0], $s[1]);
14		printf("w1_menu : %s %s\n", $w1->menu[0], $w1->menu[1]);   // メニュー
15				// クラス App(クラス Win を継承)
16		printf("\nApp_name : %s\n", App::$name);   // 名前,Win クラスと同じ
17		$a1 = new App("file", "edit");
18		printf("App_name : %s\n", App::$name);   // 新しい名前
19		printf("Win_name : %s\n", Win::$name);   // 新しい名前
20		$a1->setBGC("red");   // ここで,App の $BGC が定義される
21		printf("a1_BGC : %s\n", $a1->BGC);   // 背景色
22		printf("a1_BGC : %s\n", $a1->getBGC());   // 背景色
23		printf("w1_BGC : %s\n", $w1->getBGC());   // 背景色
24		$a1->setSize(200, 400);   // サイズの変更
25		$s = $a1->getSize();   // サイズの取得
26		printf("a1_size : %d %d\n", $s[0], $s[1]);
27		printf("w1_size : %d %d\n", $w1->getSize()[0], $w1->getSize()[1]);
28		printf("a1_menu : %s %s %s\n", $a1->menu[0], $a1->menu[1], $a1->menu[2]);   // メニュー
29				// 代入
30		$a2 = $a1;
31		printf("\n前 a1_size : %d %d\n", $a1->getSize()[0], $a1->getSize()[1]);
32		printf("   a2_size : %d %d\n", $a2->getSize()[0], $a2->getSize()[1]);
33		$a1->setSize(300, 600);   // サイズの変更
34		printf("後 a1_size : %d %d\n", $a1->getSize()[0], $a1->getSize()[1]);
35		printf("   a2_size : %d %d\n", $a2->getSize()[0], $a2->getSize()[1]);
36	
37		/**************/
38		/* クラス Win */
39		/**************/
40		class Win {
41			static $name    = "window1";
42			private $BGC    = "white";
43			protected $size = array(100, 200);
44			public $menu    = array();
45				// コンストラクタ
46			function Win($s1, $s2) {
47				$this->menu[0] = $s1;
48				$this->menu[1] = $s2;
49			}
50				// 名前の取得
51			static function getName() { return self::$name; }
52				// 背景色の取得
53			function getBGC() { return $this->BGC; }
54				// サイズの取得
55			function getSize() { return $this->size; }
56		}
57	
58		/**************/
59		/* クラス App */
60		/**************/
61		class App extends Win {   // クラス Win を継承
62	//		private $BGC;
63				// コンストラクタ
64			function App($s1, $s2) {
65				self::$name    = "window2";   // インスタンス化できないため,$this の代わりに self を使用
66				parent::Win($s1, $s2);
67				$this->menu[2] = "other";
68			}
69				// サイズの変更
70			function setSize($row, $col) { $this->size[0] = $row; $this->size[1] = $col; }
71				// 背景色の変更
72			function setBGC($col) { $this->BGC = $col; }   //   $BGC の定義も行われる
73	//		function getBGC() { return $this->BGC; }   // 記述しないと親の BGC 参照
74		}
75	?>
			
クラス名::静的メンバー変数名 クラス名::静的メンバー関数名
Win_name : window1 // 07 行目 Win_name : window1 // 08 行目 w1_BGC : white // 11 行目 w1_size : 100 200 // 13 行目 w1_menu : file edit // 14 行目 App_name : window1 // 16 行目 App_name : window2 // 18 行目 Win_name : window2 // 19 行目 a1_BGC : red // 21 行目 a1_BGC : white // 22 行目 w1_BGC : white // 23 行目 a1_size : 200 400 // 26 行目 w1_size : 100 200 // 27 行目 a1_menu : file edit other // 28 行目 前 a1_size : 200 400 // 31 行目 a2_size : 200 400 // 32 行目 後 a1_size : 300 600 // 34 行目 a2_size : 300 600 // 35 行目
01	##############################
02	# クラスに対するプログラム例 #
03	#      coded by Y.Suganuma   #
04	##############################
05	
06	##############
07	# クラス Win #
08	##############
09	class Win
10		Name    = "Window";   # 名前
11		@@_name = "other";   # クラス変数
12				# 初期設定(コンストラクタ)
13		def initialize(s1, s2)
14			@_BGC  = "white";
15			@_size = [100, 200];
16			@_menu = [s1, s2];
17		end
18				# 背景色の取得
19		def getBGC()
20			return @_BGC;
21		end
22				# サイズの取得
23		def getSize()
24			return @_size;
25		end
26				# インスタンス変数の読み込み許可
27		attr("_menu");
28	#	attr_accessor("_menu");   # インスタンス変数の読み込み,書き込み許可
29	end
30	
31	##############
32	# クラス App #
33	##############
34	class App < Win   # クラス Win を継承
35				# 初期設定(コンストラクタ)
36		def initialize(s1, s2)
37			super(s1, s2);   # 記述しないとオーバーライドされる
38			@_menu[2] = @@_name;
39		end
40				# サイズの変更
41		def setSize(row, col)
42			@_size[0] = row;
43			@_size[1] = col;
44		end
45				# 背景色の変更
46		def setBGC(c)
47			@_BGC = c;
48		end
49	end
50	
51				# クラス Win
52	printf("Win_name : %s\n", Win::Name);   # 名前
53	w1 = Win.new("file", "edit");
54	#printf("Win_name : %s\n", w1.Name);   # 許されない
55	printf("w1_BGC : %s\n", w1.getBGC());   # 背景色
56	s = w1.getSize();   # サイズの取得
57	printf("w1_size : %d %d\n", s[0], s[1]);
58	printf("w1_menu : %s %s\n", w1._menu[0], w1._menu[1]);   # メニュー
59				# クラス App(クラス Win を継承)
60	printf("\nApp_name : %s\n", App::Name);   # 名前,Win クラスと同じ
61	a1 = App.new("file", "edit");
62	a1.setBGC("red");   # 色の変更
63	printf("a1_BGC : %s\n", a1.getBGC());   # 背景色(a1)
64	printf("w1_BGC : %s\n", w1.getBGC());   # 背景色(w1)
65	a1.setSize(200, 400);   # サイズの変更
66	s = a1.getSize();   # サイズの取得
67	printf("a1_size : %d %d\n", s[0], s[1]);
68	printf("w1_size : %d %d\n", w1.getSize()[0], w1.getSize()[1]);
69	printf("a1_menu : %s %s %s\n", a1._menu[0], a1._menu[1], a1._menu[2]);   # メニュー
70				# 代入
71	a2 = a1;
72	printf("\n前 a1_size : %d %d\n", a1.getSize()[0], a1.getSize()[1]);
73	printf("   a2_size : %d %d\n", a2.getSize()[0], a2.getSize()[1]);
74	a1.setSize(300, 600);   # サイズの変更
75	printf("後 a1_size : %d %d\n", a1.getSize()[0], a1.getSize()[1]);
76	printf("   a2_size : %d %d\n", a2.getSize()[0], a2.getSize()[1]);
			
	クラス名::定数				
Win_name : Window # 52 行目 w1_BGC : white # 55 行目 w1_size : 100 200 # 57 行目 w1_menu : file edit # 58 行目 App_name : Window # 60 行目 a1_BGC : red # 63 行目 w1_BGC : white # 64 行目 a1_size : 200 400 # 67 行目 w1_size : 100 200 # 68 行目 a1_menu : file edit other # 69 行目 前 a1_size : 200 400 # 72 行目 a2_size : 200 400 # 73 行目 後 a1_size : 300 600 # 75 行目 a2_size : 300 600 # 76 行目
01	# -*- coding: UTF-8 -*-
02	
03	##############################
04	# クラスに対するプログラム例 #
05	#      coded by Y.Suganuma   #
06	##############################
07	
08	##############
09	# クラス Win #
10	##############
11	class Win :
12		name = "Window1";   # 名前
13				# 初期化(コンストラクタ)
14		def __init__(self, s1, s2) :
15			self.BGC  = "white"
16			self.size = [100, 200]
17			self.menu = [s1, s2]
18				# 背景色の取得
19		def getBGC(self) : return self.BGC
20				# サイズの取得
21		def getSize(self) : return self.size
22				# 名前の取得(クラスメソッド)
23		@classmethod
24		def getName_c(cls) :
25			return cls.name
26				# 名前の取得(スタティックメソッド)
27		@staticmethod
28		def getName_s() :
29			return Win.name
30	
31	##############
32	# クラス App #
33	##############
34	class App(Win) :   # クラス Win を継承
35				# 初期化(コンストラクタ)
36		def __init__(self, s1, s2) :
37			Win.__init__(self, s1, s2)
38			(self.menu).append("other")
39				# サイズの変更
40		def setSize(self, row, col) :
41			self.size[0] = row
42			self.size[1] = col
43				# 背景色の変更
44		def setBGC(self, col) : self.BGC = col
45	
46				# クラス Win
47	print("Win_name :", Win.name)   # 名前
48	w1 = Win("file", "edit")
49	print("w1_name :", w1.name)   # 名前
50	print("w1_name(c) :", w1.getName_c())   # 名前(クラスメソッド)
51	print("w1_name(s) :", w1.getName_s())   # 名前(スタティックメソッド)
52	print("w1_BGC :", w1.getBGC())   # 背景色,print(w1.BGC) でも可
53	s = w1.getSize()   # サイズの取得,s = w1.size でも可
54	print("w1_size :", s[0], s[1])
55	print("w1_menu :", w1.menu[0], w1.menu[1])   # メニュー
56				# クラス App
57	print("\nApp_name :", App.name)   # 名前(App)
58	print("Win_name :", Win.name)   # 名前(Win)
59	a1       = App("file", "edit")
60	App.name = "Window2"
61	a1.name  = "Window3"
62	print("App_name :", App.name)   # 名前(App)
63	print("Win_name :", Win.name)   # 名前(Win)
64	print("a1_name :", a1.name)   # 名前
65	print("a1_name(c) :", a1.getName_c())   # 名前(クラスメソッド)
66	print("a1_name(s) :", a1.getName_s())   # 名前(スタティックメソッド)
67	a1.setBGC("red");
68	print("a1_BGC :", a1.getBGC())   # 背景色,print(a1.BGC) でも可
69	print("w1_BGC :", w1.getBGC())   # 背景色,print(w1.BGC) でも可
70	a1.setSize(200, 400)   # サイズの変更
71	s = a1.getSize()   # サイズの取得,s = a1.size でも可
72	print("a1_size :", s[0], s[1])
73	print("w1_size :", w1.getSize()[0], w1.getSize()[1])
74	print("a1_menu :", a1.menu[0], a1.menu[1], a1.menu[2])   # メニュー
75				# 代入
76	a2 = a1
77	print("\n前 a1_size :", a1.getSize()[0], a1.getSize()[1])
78	print("   a2_size :", a2.getSize()[0], a2.getSize()[1])
79	a1.setSize(300, 600)   # サイズの変更
80	print("後 a1_size :", a1.getSize()[0], a1.getSize()[1])
81	print("   a2_size :", a2.getSize()[0], a2.getSize()[1])
			
	クラス名.変数名				
Win_name : Window1 # 47 行目 w1_name : Window1 # 49 行目 w1_name(c) : Window1 # 50 行目 w1_name(s) : Window1 # 51 行目 w1_BGC : white # 52 行目 w1_size : 100 200 # 54 行目 w1_menu : file edit # 55 行目 App_name : Window1 # 57 行目 Win_name : Window1 # 58 行目 App_name : Window2 # 62 行目 Win_name : Window1 # 63 行目 a1_name : Window3 # 64 行目 a1_name(c) : Window2 # 65 行目 a1_name(s) : Window1 # 66 行目 a1_BGC : red # 68 行目 w1_BGC : white # 69 行目 a1_size : 200 400 # 72 行目 w1_size : 100 200 # 73 行目 a1_menu : file edit other # 74 行目 前 a1_size : 200 400 # 77 行目 a2_size : 200 400 # 78 行目 後 a1_size : 300 600 # 80 行目 a2_size : 300 600 # 81 行目
01	/******************************/
02	/* クラスに対するプログラム例 */
03	/*      coded by Y.Suganuma   */
04	/******************************/
05	using System;
06	using System.Collections.Generic;
07	
08	class Program
09	{
10		static void Main()
11		{
12				// クラス Win
13			Console.WriteLine("Win_name : " + Win.name);   // 名前,static 指定のため可
14			Console.WriteLine("Win_name : " + Win.getName());   // 名前,static 変数だけを参照可
15			Win w1 = new Win("file", "edit");
16	//		Console.WriteLine("w1_name : " + w1.name);   // 参照不可
17			Console.WriteLine("w1_BGC : " + w1.getBGC());   // 背景色
18			int[] s = w1.getSize();   // サイズの取得
19			Console.WriteLine("w1_size : " + s[0] + " " + s[1]);
20			Console.WriteLine("w1_menu : " + w1.menu[0] + " " + w1.menu[1]);   // メニュー
21				// クラス App(クラス Win を継承)
22			Console.WriteLine("\nApp_name : " + App.name);   // 名前,App.getName() でも可
23			App a1 = new App("file", "edit");
24	//		Console.WriteLine("a1_name : " + a1.name);   // 参照不可
25			Console.WriteLine("a1_BGC : " + a1.getBGC());   // 背景色
26			a1.setSize(200, 400);   // サイズの変更
27			s = a1.getSize();
28			Console.WriteLine("a1_size : " + s[0] + " " + s[1]);
29			Console.WriteLine("w1_size : " + w1.getSize()[0] + " " +  w1.getSize()[1]);
30			Console.WriteLine("a1_menu : " + a1.menu[0] + " " + a1.menu[1] + " " + a1.menu[2]);   // メニュー
31				// 代入
32			Console.WriteLine();
33			App a2 = a1;
34			Console.WriteLine("前 a1_size : " + a1.getSize()[0] + " " + a1.getSize()[1]);
35			Console.WriteLine("   a2_size : " + a2.getSize()[0] + " " + a2.getSize()[1]);
36			a1.setSize(300, 600);   // サイズの変更
37			Console.WriteLine("後 a1_size : " + a1.getSize()[0] + " " + a1.getSize()[1]);
38			Console.WriteLine("   a2_size : " + a2.getSize()[0] + " " + a2.getSize()[1]);
39		}
40	}
41	
42	/**************/
43	/* クラス Win */
44	/**************/
45	class Win {
46		public static String name = "Window1";   // 名前
47		private String BGC = "white";   // 背景色
48		protected int[] size = {100, 200};   // サイズ(縦と横)
49		public List <String> menu = new List <String> ();   // メニュー
50				// コンストラクタ
51		public Win(String s1, String s2) {
52			menu.Add(s1);
53			menu.Add(s2);
54		}
55				// 名前の取得
56		public static String getName() { return name; }
57				// 背景色の取得
58		public virtual String getBGC() { return BGC; }
59				// サイズの取得
60		public int[] getSize() { return size; }
61	}
62	
63	/**************/
64	/* クラス App */
65	/**************/
66	class App : Win {   // クラス Win を継承
67				// コンストラクタ
68		public App(String s1, String s2) : base(s1, s2)   // base は基底クラスのコンストラクタ
69		{
70			menu.Add("other");
71		}
72				// サイズの変更
73		public void setSize(int row, int col)
74		{
75			size[0] = row;
76			size[1] = col;
77		}
78				// 背景色の取得(基底クラスの private 変数にアクセスできない)
79		public override String getBGC()
80		{
81	//		return BGC;   // アクセス不可
82			return base.getBGC();
83		}
84	}
			
クラス名.静的メンバー変数名 クラス名.静的メンバー関数名
Win_name : Window1 // 13 行目 Win_name : Window1 // 14 行目 w1_BGC : white // 17 行目 w1_size : 100 200 // 19 行目 w1_menu : file edit // 20 行目 App_name : Window1 // 22 行目 a1_BGC : white // 25 行目 a1_size : 200 400 // 28 行目 w1_size : 100 200 // 29 行目 a1_menu : file edit other // 30 行目 前 a1_size : 200 400 // 34 行目 a2_size : 200 400 // 35 行目 後 a1_size : 300 600 // 37 行目 a2_size : 300 600 // 38 行目
01	''''''''''''''''''''''''''''''
02	' クラスに対するプログラム例 '
03	'      coded by Y.Suganuma   '
04	''''''''''''''''''''''''''''''
05	Imports System
06	Imports System.Collections.Generic
07	
08	Module Test
09		Sub Main()
10				' クラス Win
11			Dim w1 As Win = new Win("file", "edit")
12			Console.WriteLine("w1_name : " & w1.name)   ' 名前,a1.getName() でも可
13			Console.WriteLine("w1_BGC : " & w1.getBGC())   ' 背景色
14			Dim s() As Integer = w1.getSize()   ' サイズの取得
15			Console.WriteLine("w1_size : " & s(0) & " " & s(1))
16			Console.WriteLine("w1_menu : " & w1.menu(0) & " " & w1.menu(1))   ' メニュー
17				' クラス App(クラス Win を継承)
18			Console.WriteLine()
19			Dim a1 As App = new App("file", "edit", 2)
20			Console.WriteLine("a1_name : " & a1.getName())   ' 名前,a1.name でも可
21			a1.name = "Window2"
22			Console.WriteLine("a1_name(変更後) : " & a1.getName())   ' 名前,a1.name でも可
23			Console.WriteLine("a1_BGC : " & a1.getBGC())   ' 背景色
24			a1.setSize(200, 400)   ' サイズの変更
25			s = a1.getSize()
26			Console.WriteLine("a1_size : " & s(0) & " " & s(1))
27			Console.WriteLine("w1_size : " & w1.getSize()(0) & " " &  w1.getSize()(1))
28			Console.WriteLine("a1_menu : " & a1.menu(0) & " " & a1.menu(1) & " " & a1.menu(2))
29			Console.WriteLine("x : " & a1.x(0) & " " & a1.x(1))   ' 配列 x
30				' 代入
31			Console.WriteLine()
32			Dim a2 As App = a1
33			Console.WriteLine("前 a1_size : " & a1.getSize()(0) & " " & a1.getSize()(1))
34			Console.WriteLine("   a2_size : " & a2.getSize()(0) & " " & a2.getSize()(1))
35			a1.setSize(300, 600)   ' サイズの変更
36			Console.WriteLine("後 a1_size : " & a1.getSize()(0) & " " & a1.getSize()(1))
37			Console.WriteLine("   a2_size : " & a2.getSize()(0) & " " & a2.getSize()(1))
38		End Sub
39	
40		''''''''''''''
41		' クラス Win '
42		''''''''''''''
43		Class Win
44			Public name As String = "Window1"   ' 名前
45			Private BGC As String = "white"   ' 背景色
46			Protected size() As Integer = {100, 200}   ' サイズ(縦と横)
47			Public menu As New List(Of String)   ' メニュー
48				' コンストラクタ
49			Public Sub New (s1 As String, s2 As String)
50				menu.Add(s1)
51				menu.Add(s2)
52			End Sub
53				' 名前の取得
54			Public Function getName() As String
55				Return name
56			End Function
57				' 背景色の取得
58			Public Function getBGC() As String
59				Return BGC
60			End Function
61				' サイズの取得
62			Public Function getSize() As Integer()
63				Return size
64			End Function
65		End Class
66		
67		''''''''''''''
68		' クラス App '
69		''''''''''''''
70		Class App
71			Inherits Win   ' クラス Win を継承
72			Private BGC As String = "red"   ' 背景色
73			Public x() As Integer
74				' コンストラクタ
75			Public Sub New (s1 As String, s2 As String, n As Integer)
76				MyBase.new(s1, s2)   ' 基底クラスのコンストラクタ
77				menu.Add("other")
78				ReDim x(n)
79				x(0) = 10
80				x(1) = 20
81			End Sub
82				' サイズの変更
83			Public Sub SetSize(row As Integer, col As Integer)
84				size(0) = row
85				size(1) = col
86			End Sub
87				' 背景色の取得(基底クラスの private 変数にアクセス不可)
88			Public Overloads Function getBGC() As String
89				Return BGC
90			End Function
91		End Class
92	End Module
			
w1_name : Window1 // 12 行目 w1_BGC : white // 13 行目 w1_size : 100 200 // 15 行目 w1_menu : file edit // 16 行目 a1_name : Window1 // 20 行目 a1_name(変更後) : Window2 // 22 行目 a1_BGC : red // 23 行目 a1_size : 200 400 // 26 行目 w1_size : 100 200 // 27 行目 a1_menu : file edit other // 28 行目 x : 10 20 // 29 行目 前 a1_size : 200 400 // 33 行目 a2_size : 200 400 // 34 行目 後 a1_size : 300 600 // 36 行目 a2_size : 300 600 // 37 行目
| 情報学部 | 菅沼ホーム | 目次 | 索引 |