javaでフィールド領域で処理を実装する方法ってありますか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: javaでフィールド領域で処理を実装する方法ってありますか?

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#9

by かずま » 7年前

java大好き さんが書きました:static初期化子とかじゃなくて、クラスのフィールド領域で例えばx[0]=1;みたいな代入処理を行うことです。
本当に x[0] = 1; ですか?
{ x[0] = 1; } ではありませんか?
それなら、インスタンス初期化子です。

コード:

class Hoge {
    int x[] = new int[3];
    { x[0] = 1; }
}

class Main {
    public static void main(String[] args) {
        Hoge h = new Hoge();
        System.out.println(h.x[0]);
    }
}
java大好き さんが書きました:そんなコードを見つけてしまったもんで疑問に思いました。
コードをコピペしてください。

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#8

by YuO » 7年前

Math さんが書きました:

コード:

	//メソッド領域
仕様書上存在しないと思われるフィールド領域という言葉を使っておられる上,メソッド領域なる言葉も仕様書上該当しそうな言葉を見付けられないのですが,どこに書いてあるのでしょうか。
Mathさんの個人の意見はいりません。docs.oracle.comで提供されているJava Specificationの,HTMLの該当箇所のFragment付きのURIを提供してください。

なお,フィールド領域という言葉に私がこだわる理由は,単純に,大元の質問に書かれているような,式文をブロックの外に書く方法が存在しないものの,
フィールド領域という言葉が何を指すのかがわかれば,別の理由で書かれているようなことができるかもしれない,という理由からです。

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#7

by Math » 7年前

Javaのグローバルな関数はクラス名でアクセス出来newしないでつかえます。
---
例えば
public final class Math extends Object

[Math クラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。 ]
その実装は
〇[フィールド領域]
E
public static final double E
自然対数の底 e にもっとも近い double 値です。

PI
public static final double PI
円周とその直径の比 pi にもっとも近い double 値です。

〇[メソッド領域]
sin
public static double sin(double a)
指定された角度の正弦 (サイン) を返します。

cos
public static double cos(double a)
指定された角度の余弦 (コサイン) を返します。

tan
public static double tan(double a)
指定された角度の正接 (タンジェント) を返します。

asin
public static double asin(double a)
指定された値の逆正弦 (アークサイン) を返します。

.....
となっていて”static"なのです。一番多い普通の実装法です。カプセル化しなくてよいなら”大変簡単...”ですよ。全部グローバルで(昔の)BASIC風にすれば小学生にもつかえるでしょう。
(先日”12歳からはじめるHTML5とCSS3 著者名 TENTO/著 という本を予約してきました。小学校でもプログラムを教えるらしいですね!)

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#6

by Math » 7年前

static class javap1は

コード:

    class javap1 
    {
        static void Main() 
        {

でもOK!。https://msdn.microsoft.com/ja-jp/library/79b3xss3.aspx
[/size]

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#5

by Math » 7年前

C#に変換して見ました。(Visual Studio不要。Windows10のみの機能でOK。cs.batをWクリックするだけです。
cs.bat

コード:

C:\windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe ^
cs1.cs
cs1.exe
pause
cs1.cs

コード:

using System;
namespace java1
{
    class p
    {
        public static double My_PI=3.141592653589793;
        public static double My_E=2.718281828;
        static  double[] ax={123.45,789.12};
        //メソッド領域	
        public static void x0()
        {
                System.Console.WriteLine(ax[0].ToString());
        }
        public static void x1()
        {
                System.Console.WriteLine(ax[1].ToString());
        }
    }
    static class javap1 
    {
        static void Main() 
        {
            // TODO
            p.x0();
            p.x1();
            System.Console.WriteLine(p.My_E.ToString());
            System.Console.WriteLine(System.Math.Sin(p.My_PI/4).ToString());
        }	
    }			
}
実行結果

コード:

D:\z\3g\11\cs>C:\windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe cs1.cs
Microsoft (R) Visual C# Compiler version 4.6.1586.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240


D:\z\3g\11\cs>cs1.exe
123.45
789.12
2.718281828
0.707106781186547

D:\z\3g\11\cs>pause
続行するには何かキーを押してください . . .
[/size]

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#4

by keito940 » 7年前

少数の覚え方までコメントに書かれてるΣ(゚Д゚)

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#3

by Math » 7年前

こちらの方が普通でしょうね。
画像

コード:

package java1;

class p
{	//フィールド領域   "産医師異国に向こう産後厄なく産”
	public static final double My_PI=3.141592653589793;
	//自然対数の底 e        "鮒一鉢二鉢一鉢二鉢"
	public static final double My_E=2.718281828;
	
	static  double[] ax={123.45,789.12};
	//メソッド領域
	static void x0()
	{
		System.out.println(ax[0]);
	}
	static void x1()
	{
		System.out.println(ax[1]);
	}
 }

public class javap1 {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		p.x0();
		p.x1();
		System.out.println(p.My_E);
		System.out.println(Math.sin(p.My_PI/4));
	}	
}
[/size]

Re: javaでフィールド領域で処理を実装する方法ってありますか?

#2

by YuO » 7年前

フィールド領域とは何でしょうか。
Java言語仕様を参照してみましたが,それらしいものは無いようです。

javaでフィールド領域で処理を実装する方法ってありますか?

#1

by java大好き » 7年前

static初期化子とかじゃなくて、クラスのフィールド領域で例えばx[0]=1;みたいな代入処理を行うことです。
そんなコードを見つけてしまったもんで疑問に思いました。

ページトップ