Javaèšèªã®èŠå
æšæºã®Javaã³ãŒãèŠåã«åŸããŸãã ãããã«ããã€ãã®ã«ãŒã«ãè¿œå ããŸããïŒ
- äŸå€ïŒèª¬æãªãã«ããããååãŸãã¯ç¡èŠããªãã§ãã ããã
- äŸå€ïŒã¹ã¿ãã¯ã®ã«ãŒãã§ãã©ã€ãã©ãªå ã®ã³ãŒããé€ããäžè¬åãããäŸå€ã䜿çšããªãã§ãã ããã
- ãã¡ã€ãã©ã€ã¶ãŒïŒãããã䜿çšããªãã§ãã ããã
- ã€ã³ããŒãïŒã€ã³ããŒããå®å šã«æå®ããŸãã
Javaã©ã€ãã©ãªã«ãŒã«
Androidçšã®Javaã©ã€ãã©ãªãšããŒã«ã®äœ¿çšã«é¢ããŠã¯åæããããŸãã å Žåã«ãã£ãŠã¯ãããšãã°ãæ¿èªãããŠããªããã¿ãŒã³ãŸãã¯ã©ã€ãã©ãªã䜿çšããå¯èœæ§ã®ããå€ãã³ãŒãã䜿çšãããªã©ãèŠåãå€æŽã§ããŸãã
Javaã¹ã¿ã€ã«ã®ã«ãŒã«
ãã¹ãŠã®ãã¡ã€ã«ã®ã¹ã¿ã€ã«ãäžè²«ããŠãããšãããã°ã©ã ã®ã¡ã³ããã³ã¹ãã¯ããã«ç°¡åã«ãªããŸãã Sunã¯ãJavaããã°ã©ãã³ã°èšèªã®ã³ãŒãèŠçŽã§å®çŸ©ãããŠããæšæºã®Javaããã°ã©ãã³ã°ã¹ã¿ã€ã«ã«åŸããŸãããããã€ãã®äŸå€ãšè¿œå ããããŸãã ãã®ã¹ã¿ã€ã«ã¬ã€ãã¯å æ¬çãã€å æ¬çã§ãããJavaã³ãã¥ããã£ã§ãåºã䜿çšãããŠããŸãã
ããã«ãã³ãŒãã«ã¯æ¬¡ã®ã«ãŒã«ã䜿çšããå¿ èŠããããŸãã
- ã³ã¡ã³ã/ JavadocïŒããããæžããŠãã ããã æšæºã¹ã¿ã€ã«ã䜿çšããŸãã
- çãã¡ãœããïŒå·šå€§ãªã¡ãœãããäœæããªãã§ãã ããã
- ãã£ãŒã«ãïŒãã¡ã€ã«ã®å é ããŸãã¯ãããã䜿çšããã¡ãœããã®çŽåã«ãªããã°ãªããŸããã
- ããŒã«ã«å€æ°ïŒã¹ã³ãŒããå¶éããŸãã
- ã€ã³ããŒãïŒandroid; ãµãŒãããŒãã£ïŒã¢ã«ãã¡ãããé ïŒ; JavaïŒxïŒ
- ã€ã³ãã³ãïŒã¿ããªãã®4ã€ã®ã¹ããŒã¹ã
- è¡ã®é·ãïŒ100æåã
- ãã£ãŒã«ãåïŒéãããªãã¯ããã³ééçãã£ãŒã«ãã¯ãmãã§å§ãŸããŸãã
- äžæ¬åŒ§ïŒéãäžæ¬åŒ§ã¯å¥ã®è¡ã«ãããŸããã
- 泚éïŒæšæºã®æ³šéã䜿çšããŸãã
- ç¥èªïŒç¥èªãååã®åèªãšããŠäœ¿çšããŸããããšãã°ãXmlHttpRequestãgetUrlïŒïŒãªã©ã
- TODOã¹ã¿ã€ã«ïŒãTODOïŒããã«èª¬æãæžããŠãã ãããã
- äžè²«æ§ïŒããªãã®åšããèŠãŠãã ããã
Javaèšèªã®èŠå
äŸå€ãç¡èŠããªãã§ãã ãã
ããšãã°ãäŸå€ãç¡èŠããã³ãŒããèšè¿°ã§ããŸãã
void setServerPort(String value) { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { } }
絶察ã«ããªãã§ãã ããã ã³ãŒãããã®ãããªç¶æ ã«ééããããšã¯æ±ºããŠãªããšæããããã®ç¶æ ãåŠçããããšã¯éèŠã§ã¯ãªããšæããŸãããäŸå€ãç¡èŠãããšé ããåé¡ãçããŸãã åºæ¬çã«ãã¹ãŠã®äŸå€ãåŠçããå¿ èŠããããŸãã ããããã®å Žåã®è©³çŽ°ã¯ãç¶æ³ã«ãã£ãŠç°ãªããŸãã
蚱容å¯èœãªä»£æ¿ïŒ
- åŒã³åºãå
ã®ã¡ãœããã«äŸå€ãã¹ããŒããŸãã
void setServerPort(String value) throws NumberFormatException { serverPort = Integer.parseInt(value); }
- æœè±¡åã®ã¬ãã«ã«å¿ããŠäŸå€ãã¹ããŒããŸã
void setServerPort(String value) throws ConfigurationException { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { throw new ConfigurationException("Port " + value + " is not valid."); } }
- ãšã©ãŒããã£ããããcatch {}ãããã¯å
ã®å¯Ÿå¿ããå€ã眮ãæããŸã
/** Set port. If value is not a valid number, 80 is substituted. */ void setServerPort(String value) { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { serverPort = 80; // default port for server } }
- ãšã©ãŒããã£ããããRuntimeExceptionãã¹ããŒããŸãã ããã¯å±éºã§ãããã®ãšã©ãŒãçºçããŠãããŸããªãå Žåã«ã®ã¿å®è¡ããŠãã ããã
/** Set port. If value is not a valid number, die. */ void setServerPort(String value) { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { throw new RuntimeException("port " + value " is invalid, ", e); } }
- ãã®ã±ãŒã¹ã§äŸå€ãç¡èŠããããšã確å®ãªå Žåã¯ãå°ãªããšãããªããã決ããã®ãã«ã€ããŠã³ã¡ã³ãããŠãã ããã
/** If value is not a valid number, original port number is used. */ void setServerPort(String value) { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { // Method is documented to just ignore invalid user input. // serverPort will just be unchanged. } }
äžè¬çãªäŸå€ããã£ããããŸãã
äŸå€åŠçãé¢åã§ã次ã®ãããªèšè¿°ããããå ŽåããããŸãã
try { someComplicatedIOFunction(); // may throw IOException someComplicatedParsingFunction(); // may throw ParsingException someComplicatedSecurityFunction(); // may throw SecurityException // phew, made it all the way } catch (Exception e) { // I'll just catch all exceptions handleError(); // with one generic handler! }
ããªãã¯ãããããã¹ãã§ã¯ãããŸããã äžçªäžã®è¡ã¯ãäºæããªãäŸå€ãååšããå¯èœæ§ãããããã®çµæãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ãšã©ãŒããã£ãããããããšã§ãã ã€ãŸãã誰ããæ°ããã¿ã€ãã®äŸå€ãè¿œå ããå Žåãã³ã³ãã€ã©ã¯ãããå¥ã®ãšã©ãŒã§ããããšãç解ããã®ãå©ããããšãã§ããŸããã
ãã®èŠåã«ã¯ãŸããªäŸå€ããããŸãïŒç¹å®ã®ãã¹ãã³ãŒãããŸãã¯ãã¹ãŠã®çš®é¡ã®ãšã©ãŒãã€ã³ã¿ãŒã»ãããããããã¬ãã«ã³ãŒãïŒãšã©ãŒããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«è¡šç€ºãããªãããã«ããããããŸãã¯äœããã®çš®é¡ã®ãããã¿ã¹ã¯ãç¶è¡ããããïŒã
äžè¬çãªäŸå€ã®ä»£æ¿ïŒ
- 1åè©Šè¡ããåŸãcatchãããã¯ã§åäŸå€ãåå¥ã«ãã£ããããŸãã ããã¯äŸ¿å©ã§ã¯ãªããããããŸããããããã§ããã¹ãŠã®äŸå€ããã£ããããããã®å¥œãŸããæ¹æ³ã§ãã
- è€æ°ã®tryãããã¯ã䜿çšããŠããããã现ããªãšã©ãŒåŠçã®ããã«ã³ãŒããå€æŽããŸãã IOã解æããåé¢ããããããã®ã±ãŒã¹ã§ãšã©ãŒãåå¥ã«åŠçããŸãã
- äŸå€ãæããŸãã å€ãã®å Žåããã¹ãŠã®äŸå€ãçŸåšã®ã¬ãã«ã§åŠçããå¿ èŠã¯ãªããã¡ãœããã«äŸå€ãã¹ããŒãããã ãã§ãã
èŠããŠãããŠãã ããïŒäŸå€ã¯ããªãã®åéã§ãïŒ ã³ã³ãã€ã©ãŒããããããã£ããããŠããªãããšã瀺ããšããæã£ãŠã¯ãããŸããã
ãã¡ã€ãã©ã€ã¶ãŒ
æŠèŠïŒãã¡ã€ãã©ã€ã¶ã¯ããªããžã§ã¯ããã¬ããŒãžã³ã¬ã¯ã¿ã«ãã£ãŠåéãããåã«ããã°ã©ã ã³ãŒããå®è¡ããæ¹æ³ã§ãã
é·æ ïŒç¹ã«å€éšãªãœãŒã¹ã®ã¯ãªãŒãã³ã°ã«åœ¹ç«ã€å ŽåããããŸãã
çæ ïŒãã¡ã€ãã©ã€ã¶ããã€åŒã³åºãããããäžè¬çã«ã¯ãã¡ã€ãã©ã€ã¶ãåŒã³åºããããã©ããã¯ä¿èšŒãããŸããã
解決ç ïŒãã¡ã€ãã©ã€ã¶ãŒã䜿çšããŸããã ã»ãšãã©ã®å Žåããã¡ã€ãã©ã€ã¶ã«å¿ èŠãªãã®ã¯ãã¹ãŠãäŸå€åŠçã§ã§ããŸãã ãã¡ã€ãã©ã€ã¶ãŒãæ¬åœã«å¿ èŠãªå Žåã¯ãcloseïŒïŒã¡ãœããã宣èšããæ£ç¢ºã«åŒã³åºãããã¿ã€ãã³ã°ãææžåããŸãã
èŒžå ¥å
ã€ã³ããŒãã®ã¯ã€ã«ãã«ãŒã
æŠèŠ ïŒfooããã±ãŒãžã®Barã¯ã©ã¹ã䜿çšããå Žåããããè¡ãã«ã¯2ã€ã®æ¹æ³ããããŸãã
import foo.*;
import foo.Bar;
ããïŒ1 ïŒå¯èœæ§ã®ããimportã¹ããŒãã¡ã³ãã®æ°ãæœåšçã«æžãããŸãã
ããïŒ2 ïŒå®éã«äœ¿çšãããŠããã¯ã©ã¹ãæ確ã«ããŸãã ã³ãŒãããµããŒããã人ã«ãšã£ãŠã³ãŒããèªã¿ãããããŸãã
解決ç ïŒã¹ã¿ã€ã«ïŒ2ã䜿çšããŠãAndroidã³ãŒããã€ã³ããŒãããŸãã æ瀺çãªäŸå€ã¯ãæšæºã©ã€ãã©ãªïŒjava.utilã*ãJava.ioã*ãªã©ïŒããã³åäœãã¹ãã³ãŒãïŒjunit.frameworkã*ïŒã«å¯ŸããŠäœæãããŸãã
ã³ã¡ã³ã/ Javadoc
åãã¡ã€ã«ã«ã¯ãæåã«èäœæš©è¡šç€ºãå¿ èŠã§ãã 次ã«ãããã±ãŒãžãšã€ã³ããŒãæã®å®£èšããããåãããã¯ã¯ç©ºã®æååã§åºåãããŠããŸãã ãã®åŸã«ã¯ã©ã¹ãŸãã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®å®£èšãç¶ããŸãã ã¯ã©ã¹ã®åäœãJavadocã³ã¡ã³ãã§èª¬æããŸãã
/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.foo; import android.os.Blah; import android.view.Yada; import java.sql.ResultSet; import java.sql.SQLException; /** * Does X and Y and provides an abstraction for Z. */ public class Foo { ... }
åã¯ã©ã¹ããã³éèŠãªãããªãã¯ã¡ãœããã«ã¯ããã®åäœã説æããå°ãªããšã1ã€ã®ãã¬ãŒãºãå«ãJavadocãå«ãŸããŠããå¿ èŠããããŸãã ãã¬ãŒãºã¯3人称ã®èª¬æåè©ã§å§ãŸãå¿ èŠããããŸãã äŸïŒ
/** Returns the correctly rounded positive square root of a double value. */ static double sqrt(double a) { } /** * Constructs a new String by converting the specified array of * bytes using the platform's default character encoding. */ public String(byte[] bytes) { }
Javadocã§ãsets Fooãã®ã¿ãšè¡šç€ºãããŠããå ŽåãsetFooïŒïŒã®ãããªåçŽãªgetããã³setã¡ãœããã®Javadocãèšè¿°ããå¿ èŠã¯ãããŸããã ã¡ãœãããããè€éãªããšãè¡ãå ŽåïŒããšãã°ãç¹å®ã®å¶éãéµå®ããå ŽåããŸãã¯ãã®ã¢ã¯ã·ã§ã³ãããèªäœã®å€åŽã§éèŠãªå¹æãçºæ®ããå ŽåïŒãææžåããå¿ èŠããããŸãã ãããŠããããFooã®æå³ã®åãªã説æã§ã¯ãªãå Žåã¯ããããææžåããå¿ èŠããããŸãã
äžè¬ã«ãJavadocããããªãã¯ã§ãããã©ããã«é¢ä¿ãªããäœæããã¡ãœããã¯ãã¹ãŠJavadocããæ©æµãåããŸãã ãããªãã¯ã¡ãœããã¯APIã®äžéšã§ãããããJavadocã§ã®èª¬æãå¿ èŠã§ãã
Javadocãäœæããã«ã¯ã Sun Javadocã®èŠåã«åŸãå¿ èŠããããŸãã
çãæ¹æ³
ã¡ãœããã¯å°ãããç¹å®ã®åé¡ãå¯èœãªéã解決ããå¿ èŠããããŸãã ãã ãã倧ããªã¡ãœãããæçšãªå Žåããããããã¡ãœããã®é·ãã«å³å¯ãªå¶éã¯ãããŸããã ã¡ãœããã40è¡ãè¶ ããå Žåã¯ãããã°ã©ã ã®æ§é ã«éåããããšãªãåå²ã§ãããã©ãããæ€èšããå¿ èŠããããŸãã
ããŒã«ã«å€æ°
ããŒã«ã«å€æ°ã®ã¹ã³ãŒãã¯æå°åããå¿ èŠããããŸãã ããã«ãããã³ãŒãã®å¯èªæ§ãšä¿å®æ§ãåäžãããšã©ãŒã®å¯èœæ§ãæžå°ããŸãã åå€æ°ã¯ãå€æ°ã䜿çšãããã¹ãŠã®å¯èœãªå Žæãå²ãæãæ·±ããããã¯ã§å®£èšããå¿ èŠããããŸãã
ããŒã«ã«å€æ°ã¯ãæåã«äœ¿çšããå¿ èŠãããå Žæã§å®£èšããå¿ èŠããããŸãã ã»ãšãã©ãã¹ãŠã®ããŒã«ã«å€æ°ã«ã¯åæååãå¿ èŠã§ãã ããã§ãå€æ°ãæ£ç¢ºã«åæåããæ¹æ³ãããããªãå Žåã¯ããããããããŸã§ãã®å®£èšã延æããå¿ èŠããããŸãã
try-catchãããã¯ã«ã¯1ã€ã®äŸå€ããããŸãã ãã§ãã¯äŸå€ãã¹ããŒããã¡ãœããã®returnã¹ããŒãã¡ã³ãã䜿çšããŠå€æ°ãåæåããå Žåãtryãããã¯ã§åæåããå¿ èŠããããŸãã å€æ°ãtryãããã¯ã®å€åŽã§äœ¿çšããå¿ èŠãããå Žåã¯ãå€æ°ããã®åã§å®£èšããŸããå€æ°ãæ£ç¢ºã«åæåããæ¹æ³ãç¥ã£ãŠããŠãããŸããŸããã
// Instantiate class cl, which represents some sort of Set Set s = null; try { s = (Set) cl.newInstance(); } catch(IllegalAccessException e) { throw new IllegalArgumentException(cl + " not accessible"); } catch(InstantiationException e) { throw new IllegalArgumentException(cl + " not instantiable"); } // Exercise the set s.addAll(Arrays.asList(args));
ãã ãããã®å Žåã§ããã¡ãœããã«try-catchãããã¯ãã«ãã»ã«åããããšã§åé¿ã§ããŸãã
Set createSet(Class cl) { // Instantiate class cl, which represents some sort of Set try { return (Set) cl.newInstance(); } catch(IllegalAccessException e) { throw new IllegalArgumentException(cl + " not accessible"); } catch(InstantiationException e) { throw new IllegalArgumentException(cl + " not instantiable"); } } ... // Exercise the set Set s = createSet(cl); s.addAll(Arrays.asList(args));
ã«ãŒãå ã®å€æ°ã¯ãä¹ãè¶ããããªãçç±ããªãéããã¹ããŒãã¡ã³ãèªäœã®äžã§å®£èšããå¿ èŠããããŸãã
for (int i = 0; i <= n; i++) { doSomething(i); } for (Iterator i = c.iterator(); i.hasNext(); ) { doSomethingElse(i.next()); }
èŒžå ¥å
ã€ã³ããŒãæã®é åºã¯æ¬¡ã®ãšããã§ãã
- Androidã®ã€ã³ããŒãã
- ãµãŒãããŒãã£ã®ã€ã³ããŒãïŒcomãjunitãnetãorgïŒã
- javaããã³javaxã
IDEèšå®ã«å®å šã«æºæ ããã«ã¯ãã€ã³ããŒãã¯æ¬¡ã®ããã«ãªããŸãã
- åã°ã«ãŒãå ã§ã¢ã«ãã¡ãããé ã«äžŠã¹æ¿ããããŸãã
- 倧æåã¯å°æåã®åã«ãªããã°ãªããŸããïŒããšãã°ãaã®åã®ZïŒã
- ã¡ã€ã³ã°ã«ãŒãã¯ç©ºã®è¡ã§åºåãå¿ èŠããããŸãã
ãªãã§ïŒ
é åºã¯æ¬¡ã®ãšããã§ãã
- 人ã ãæåã«èŠããã€ã³ããŒãã¯äžçªäžã«ãããŸãïŒandroidïŒã
- æåŸã«èŠããã€ã³ããŒãã¯äžçªäžã«ãããŸãïŒjavaïŒã
- 人ã ã¯ãã®ã¹ã¿ã€ã«ãç°¡åã«äœ¿çšã§ããŸãã
- IDEã¯ãã®ã¹ã¿ã€ã«ã«æºæ ã§ããŸãã
ããŒã¿
ãããã¯ã«ã¯4ã€ã®ã¹ããŒã¹ã䜿çšããŸãã ã¿ãã¯äœ¿çšããŸããã é¢æ°åŒã³åºããå²ãåœãŠãå«ãæ¹è¡ã«ã¯ãããšãã°æ¬¡ã®ããã«8ã€ã®ã¹ããŒã¹ã䜿çšããŸãã
Instrument i = someLongExpression(that, wouldNotFit, on, one, line);
ãããŠãšãŠãééã£ãŠããŸãïŒ
Instrument i = someLongExpression(that, wouldNotFit, on, one, line);
ãã£ãŒã«ãå
- ééçããã³éå ¬éã®ååã¯ãmãã§å§ãŸããŸãã
- éçãã£ãŒã«ãã¯ãsãã§å§ãŸããŸãã
- ä»ã®ãã£ãŒã«ãã¯å°æåã§å§ãŸããŸãã
- ãããªãã¯éçæçµãã£ãŒã«ãïŒå®æ°ïŒã¯ãã¢ã³ããŒã¹ã³ã¢ïŒALL_CAPS_WITH_UNDERSCORESïŒã䜿çšããŠå®å šã«å€§æåã§æžã蟌ãŸããŸã
äŸïŒ
public class MyClass { public static final int SOME_CONSTANT = 42; public int publicField; private static MyClass sSingleton; int mPackagePrivate; private int mPrivate; protected int mProtected; }
äžæ¬åŒ§
äžæ¬åŒ§ãéãå Žåãå¥ã®è¡ã¯åŒ·èª¿è¡šç€ºããããåã®ã³ãŒããšåãè¡ã«ãããŸãã
class MyClass { int func() { if (something) { // ... } else if (somethingElse) { // ... } else { // ... } } }
æ¡ä»¶ã¹ããŒãã¡ã³ãã«ã¯äžæ¬åŒ§ãå¿ èŠã§ãã äŸå€ã¯ãæ¡ä»¶ã¹ããŒãã¡ã³ããšãã®æ¬äœãåãè¡ã«é 眮ãããŠããå Žåã§ãã ã€ãŸãã次ã®ããã«æžãããšãã§ããŸãã
if (condition) { body(); // ok } if (condition) body(); // ok
ããããããã¯äžå¯èœã§ãã
if (condition) body(); // bad
è¡ã®é·ã
ã³ãŒãå ã®åããã¹ãè¡ã¯ã100æå以å ã«ããå¿ èŠããããŸãã
äŸå€ïŒã³ã¡ã³ãã«ãµã³ãã«ã³ãã³ããŸãã¯URLãå«ãŸããå ŽåïŒã³ããŒ/貌ãä»ãã䜿çšããæ¹ã䟿å©ã§ãïŒã
äŸå€ïŒã€ã³ããŒãæååã¯100æåãè¶ ããå ŽåããããŸããããã¯äººã ããã£ãã«èŠãªãããã§ãã ãŸããããŒã«ã®äœæãç°¡åã«ãªããŸãã
ååã®ç¥èª
é åèªãšç¥èªãåèªãšèããŠãã ããã ååã¯ããèªã¿ããããªããŸãïŒ
ãã | æªã |
XmlHttpRequest | XMLHTTPRequest |
getCustomerId | getCustomerID |
ãã®ã¹ã¿ã€ã«ã¯ãç¥èªãšç¥èªããã«ããŒã ã®å Žåã«ãé©çšãããŸãã
ãã | æªã |
ã¯ã©ã¹html | ã¯ã©ã¹HTML |
æååã®URLã | æååURL |
ãã³ã°ID; | é·ãID; |
TODOã¹ã¿ã€ã«
äžæçãçæçããŸãã¯è¯ããçæ³çã§ã¯ãªãã³ãŒãã«ã¯TODOã³ã¡ã³ãã䜿çšããŸãã ã³ã¡ã³ãã«ã¯ãTODOïŒããå«ããå¿ èŠããããŸããäŸïŒ
// TODO: Remove this code after the UrlTable2 has been checked in. // TODO: Change this to use a flag instead of a constant.
ã³ã¡ã³ãããå°æ¥äœãããããã®å Žåã¯ãç¹å®ã®æ¥ä»ïŒ2011幎1æ1æ¥ïŒããŸãã¯ç¹å®ã®ãããŒãžã§ã³2.1以éã®åé€ãã€ãã³ããå«ãŸããŠããããšã確èªããŠãã ããã
ã³ããŒã¬ã³ã¹
ã³ãŒããå€æŽããå Žåã¯ãåšå²ã®ã³ãŒããèŠãŠãã®ã¹ã¿ã€ã«ãå€æããããã«å°ãæéãããããŸãã ã¹ããŒã¹ã䜿çšãããŠããå Žåã¯ããããã䜿çšããå¿ èŠããããŸãã ã³ã¡ã³ãã«å°ããªæã®ã»ãããå«ãŸããŠããå Žåã¯ããããã䜿çšããå¿ èŠããããŸãã
ã³ãŒãã¹ã¿ã€ã«ã¬ã€ãã©ã€ã³ã®ãã€ã³ãã¯ãå ±éã®èªåœãäœæããŠã人ã ãèšãããšã§ã¯ãªãã話ãããšã«éäžã§ããããã«ããããšã§ãã 人ã ããã®èªåœãç解ã§ããããã«ãã°ããŒãã«ã¹ã¿ã€ã«ã«ãŒã«ãå°å ¥ããŸãã ããããå°å ã®ã¹ã¿ã€ã«ãéèŠã§ãã ãã¡ã€ã«ã«è¿œå ããã³ãŒããå ã®ã³ãŒããšå€§ããç°ãªãå Žåãããã«ããå°æ¥ã®èªè ã¯ãªãºã ããå€ããæ§é ãç解ã§ããªããªããŸãã ãããé¿ããããã«ããŠãã ããã