<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>イテルの一日一問 &#187; 関数</title>
	<atom:link href="http://oneday.ter.jp/tag/%e9%96%a2%e6%95%b0/feed" rel="self" type="application/rss+xml" />
	<link>http://oneday.ter.jp</link>
	<description>一日にひとつは何かを考える。</description>
	<lastBuildDate>Tue, 25 May 2010 00:35:11 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://oneday.ter.jp/tag/%e9%96%a2%e6%95%b0/feed" />
		<item>
		<title>継承1（extends）</title>
		<link>http://oneday.ter.jp/actionscript3/563.html</link>
		<comments>http://oneday.ter.jp/actionscript3/563.html#comments</comments>
		<pubDate>Fri, 31 Jul 2009 23:05:38 +0000</pubDate>
		<dc:creator>イテル</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[as3勉強]]></category>
		<category><![CDATA[extends]]></category>
		<category><![CDATA[継承]]></category>
		<category><![CDATA[関数]]></category>

		<guid isPermaLink="false">http://oneday.ter.jp/?p=563</guid>
		<description><![CDATA[
本日は、「継承」を学習する。
意味を理解する
継承はオブジェクト指向のプログラムには欠かすことのできないものらしい。
あるクラスが、別のクラスの変数とメソッド定義を借りる（または受け継ぐ）という、
2つ以上のクラスでの [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://oneday.ter.jp/wp-content/uploads/2009/08/090705-one31-700x200.jpg" alt="090705-one31" title="090705-one31" width="700" height="200" class="alignnone size-thumbnail wp-image-592" /></p>
<p>本日は、「継承」を学習する。</p>
<h3>意味を理解する</h3>
<p>継承はオブジェクト指向のプログラムには欠かすことのできないものらしい。<br />
あるクラスが、別のクラスの変数とメソッド定義を借りる（または受け継ぐ）という、<br />
2つ以上のクラスでの形式的名関係性のことを言うらしい。</p>
<p>噛み砕くと、クラスを別のクラスで使えるようにすることらしい。</p>
<p>参考書には、継承させることで継承されたクラスは元のクラスとある点では<br />
そっくりにしながら、他にはないそれ自体の機能を追加することが可能に<br />
なると書いてあった。</p>
<p>「北斗神拳を継承したケン○ロウが、北斗神拳も使いつつ、<br />
それ以外の独自の技を編み出して使えるようになった。」</p>
<p>と同じ意味なのだろうか・・・。<br />
たぶんそうに違いない。</p>
<h3>継承の入門プログラム</h3>
<p>さっそく、入門編の継承のサンプルを書いてみる。</p>
<pre class="brush: as3;">
public class iteru{
	public var iteruVal = 10;

	public function hand(){
		trace(&quot;メソッドhandが実行&quot;);
	}
</pre>
<p>iteruクラスがあったとする。<br />
これを継承したkoIteruクラスを作る。<br />
koIteruクラスにはさらにfootメソッドを追加してみた。</p>
<pre class="brush: as3;">
public class koIteru extends iteru{
	public function foot(){
		trace(&quot;メソッドfootが実行&quot;);
	}
</pre>
<p>koIteruインスタンスはkoIteruと、<br />
そのスーパークラスiteruの持つすべての<br />
メソッドと変数を使うことができるようになる。</p>
<pre class="brush: as3;">
var koIteru = new koIteru();
//iteruから継承した変数を表示
trace(koIteru.iteruVal);  //表示：10

//iteruで定義されている、継承したメソッドの呼び出し
koIteru.hand(); //→表示：メソッドhandが実行

//koIteruで定義されているメソッドの呼び出し。
koIteru.foot(); //→表示：メソッドfootが実行
</pre>
<p>といった感じでkoIteruがiteruの機能を継承したことがわかるはず。<br />
これと同様に、koIteruをmagoIteruが継承すると、<br />
iteruの機能とkoIteruの機能を有したmagoIteruを作れる。</p>
<p>これは便利。</p>
]]></content:encoded>
			<wfw:commentRss>http://oneday.ter.jp/actionscript3/563.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://oneday.ter.jp/actionscript3/563.html" />
	</item>
		<item>
		<title>関数2</title>
		<link>http://oneday.ter.jp/actionscript3/583.html</link>
		<comments>http://oneday.ter.jp/actionscript3/583.html#comments</comments>
		<pubDate>Fri, 31 Jul 2009 07:30:01 +0000</pubDate>
		<dc:creator>イテル</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[as3勉強]]></category>
		<category><![CDATA[シンタックス]]></category>
		<category><![CDATA[ソースレベル]]></category>
		<category><![CDATA[ネスト]]></category>
		<category><![CDATA[定義]]></category>
		<category><![CDATA[関数]]></category>

		<guid isPermaLink="false">http://oneday.ter.jp/?p=583</guid>
		<description><![CDATA[
ネストされた関数
関数に書く関数ってことかな。
この関数の中の関数は、親の関数からのみ使用できるらしい。

//メソッドiteru
public function iteru(){
	//ネストされた関数ito()の呼 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-588" title="090705-one31" src="http://oneday.ter.jp/wp-content/uploads/2009/07/090705-one315-700x200.jpg" alt="090705-one31" width="700" height="200" /></p>
<h3>ネストされた関数</h3>
<p>関数に書く関数ってことかな。<br />
この関数の中の関数は、親の関数からのみ使用できるらしい。</p>
<pre class="brush: as3;">
//メソッドiteru
public function iteru(){
	//ネストされた関数ito()の呼び出し
	ito();

	//ネストされた関数ito()の定義
	function ito(){
		//関数本体をここに記入
	}
}
</pre>
<p>関数iteruの中で、なんか面倒な処理をさせたい場合に、<br />
面倒な処理を関数itoで実行してしまうって方法。<br />
複雑な計算で、しかも同一関数内で何度も使いそうな場合に使えるかも。</p>
<h3>ソースファイルレベルの関数</h3>
<p>同一ファイル内のパッケージ本体外に書いた関数は、<br />
同じファイル内からだったらどこからでも利用できるっぽい。</p>
<pre class="brush: as3;">
package{
	//ここでもitoは使用可能
	class iteru(){
		//ここでもitoは使用可能
		public function iteru(){
			//ここでもitoは使用可能
		}
	}
}
function ito(){
	//itoの処理
}
</pre>
<p>ちなみに、この関数itoには「function」や「internal」などの<br />
アクセス制御指定子は含めてダメらしい。</p>
<h3>関数内からの定義へのアクセス</h3>
<p>どこに関数を置くかによって、そのプログラムの<br />
定義（変数、メソッド、クラス、名前空間など）に<br />
アクセスできるかが決まるらしい。<br />
詳細説明省略。</p>
<h3>値としての関数</h3>
<p>関数はインスタンスによって表されるので、<br />
値と同じように変数に代入したりすることができる。</p>
<pre class="brush: as3;">
function iteru(){
	//プログラム
}
var ito=iteru;
</pre>
<p>こうすることによって、</p>
<pre class="brush: as3;">
ito();
</pre>
<p>とすると、結果的に「iteru()」を呼びだすことになるらしい。</p>
<h3>関数リテラルのシンタックス</h3>
<p>よくわからんかったｗ</p>
<pre class="brush: as3;">
var square = function(n){
	return n * n;
}

square(5);
</pre>
<p>この方法はsetInterval関数と併用して使用されることがあるらしい。</p>
<pre class="brush: as3;">
package{
	import flash.utils.setInterval;

	public class iteruClock{
		public function iteruClock(){
			//1秒おきに関数リテラルを実行
			setIntval(function(){
				trace(&quot;iteru-tick!&quot;);
			} , 1000 );
		}
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://oneday.ter.jp/actionscript3/583.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://oneday.ter.jp/actionscript3/583.html" />
	</item>
		<item>
		<title>関数1</title>
		<link>http://oneday.ter.jp/actionscript3/561.html</link>
		<comments>http://oneday.ter.jp/actionscript3/561.html#comments</comments>
		<pubDate>Thu, 30 Jul 2009 11:04:13 +0000</pubDate>
		<dc:creator>イテル</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[as3勉強]]></category>
		<category><![CDATA[internal]]></category>
		<category><![CDATA[private]]></category>
		<category><![CDATA[public]]></category>
		<category><![CDATA[関数]]></category>

		<guid isPermaLink="false">http://oneday.ter.jp/?p=561</guid>
		<description><![CDATA[
asに限らず、いろいろなプログラムで使われる関数。
正式には関数クロージャと呼ばれるみたい。

関数とは「何らかの作業を実行する個別の命令セット」。
クラスやオブジェクトから独立しているもののことを言うらしい。
関数は [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-569" title="090705-one31" src="http://oneday.ter.jp/wp-content/uploads/2009/07/090705-one314-700x200.jpg" alt="090705-one31" width="700" height="200" /></p>
<p>asに限らず、いろいろなプログラムで使われる関数。<br />
正式には関数クロージャと呼ばれるみたい。</p>
<ol>
<li>関数とは「何らかの作業を実行する個別の命令セット」。</li>
<li>クラスやオブジェクトから独立しているもののことを言うらしい。</li>
<li>関数は「function」キーワードで定義する。</li>
<li>呼び出しにはカッコ演算子を使う。</li>
<li>関数を作成するには、「メソッド内」「パッケージ定義内」<br />
「パッケージ定義外」「別の関数内に直接」に記述する。</li>
<li>直接クラス本体内にあると、それは関数ではなくインスタンスメソッドになる。</li>
</ol>
<p>なんとなく理解できそう・・・。</p>
<p>関数の記述方法は以下の通り。</p>
<pre class="brush: as3;">
function identifier(param1 , param2 , param3 ... paramn){
//プログラムコード
}
</pre>
<p>※identifierは関数の名称。</p>
<p>関数の呼び出し方法は以下の通り。</p>
<pre class="brush: as3;">
theFunction(value1 , value2 , value3 ... valuen);
</pre>
<p>※theFunctionは関数の名称。</p>
<h3>パッケージレベルの関数</h3>
<p>パッケージで関数を使う場合は、関数定義をパッケージ本体内に直接記述する。</p>
<h5>パッケージ内からのみ使える関数</h5>
<pre class="brush: as3;">
package packageName(){
internal function identifier(){
//関数のプログラム
//※アクセス制御指定子internalをつける。
}
}
</pre>
<h5>プログラム全体から使える関数</h5>
<pre class="brush: as3;">
package packageName(){
public function identifier(){
//関数のプログラム
//※アクセス制御指定子publicをつける。
}
}
</pre>
<p>アクセス制御指定子をつけないと自動的にinternalになり、<br />
パッケージ内からのみ使えるようになる。</p>
<h3>グローバル関数</h3>
<p>名前のないパッケージのパッケージレベルで定義した関数は、<br />
「import」ステートメントを使わなくてもプログラム全体から<br />
グローバルに参照することができることから、<br />
グローバル関数と呼ばれる。</p>
<h4>パッケージ名の無い関数例</h4>
<pre class="brush: as3;">
package{
import flash.system.*;
public function isIteru(){
return Capabilities.os = &amp;amp;quot;iteru&amp;amp;quot;
//OSがiteruか確認する。そんなのないけど。
}
}
</pre>
<h4>パッケージ名の無い関数使用例</h4>
<pre class="brush: as3;">
package setup{
public class WelCome{
public function WelCome(){
//isIteruの使用
if( isIteru() ){
//iteru特有のプログラムを実行する
}
}
}
}
</pre>
<p>それとも、isIteruをインポートしなくてもいいってこと・・・。かな。</p>
<p>Flashランタイムにはそれぞれ多くのパッケージレベルの関数や<br />
グローバル関数があらかじめ組み込まれているらしい。</p>
<p>もっとも使うであろうグローバル関数は「trace」。<br />
traceは特にインポートしてなくても使えてるので、<br />
そういった関数を、package名無しで作れば、自作できるってことかと。</p>
<p>今日はここまで。</p>
<div class="amazon-item-box" style="display: block; padding: 0; border: 1px solid  #999; margin: 8px;  -moz-border-radius: 10px;">
<div class="amazon-item-image" style="display: block; padding: 10px; float: left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113873/iterudiary-22/ref=nosim" target="_blank"><img style="border: none; display: inline; vertical-align: bottom;" title="詳説 ActionScript 3.0" src="http://ecx.images-amazon.com/images/I/514SnR1V4yL._SL160_.jpg" alt="詳説 ActionScript 3.0" /></a></div>
<dl class="amazon-item-info" style="display: block; margin-left: 10px; padding: 0 8px 0 10px; font-size: 10pt; line-height: 110%;">
<dt class="amazon-item-name" style="display: block; margin-bottom: 5px; line-height: 120%;"><a title="詳説 ActionScript 3.0" href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113873/iterudiary-22/ref=nosim" target="_blank">詳説 ActionScript 3.0</a></dt>
<dd>
<ul class="amazon-item-info-list" style="list-style-type: none; padding-left: 0px; line-height: 120%;">
<li>発売元: オライリージャパン</li>
<li>価格: ￥ 6,090</li>
<li>発売日: 2008/11/22</li>
<li>売上ランキング： 69005</li>
<li>おすすめ度 <img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5.0" /></li>
</ul>
</dd>
</dl>
<p class="amazon-item-footer" style="clear: left; text-align: right; font-size: x-small; padding: 4px 10px 4px 10px; line-height: 100%; background-color: #f0f0f0;">posted with <a href="http://socialtunes.net">Socialtunes</a> at 2009/07/27</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://oneday.ter.jp/actionscript3/561.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://oneday.ter.jp/actionscript3/561.html" />
	</item>
	</channel>
</rss>
