javaでC++のdefine文に相当する記述

このQ&Aのポイント
  • javaでは、C++の#define文に相当する記述方法について質問します。どのように記述すればいいのか教えてください。
  • javaでの#define文に相当する記述方法を教えてください。具体的な例とともに説明していただけると助かります。
  • javaでの#define文に代わる記述方法を教えてください。具体的なコード例を示していただけるとありがたいです。
回答を見る
  • ベストアンサー

javaでC++のdefine文に相当する記述

毎度、お世話になります。 VC++では、#define文があります。 javaでdefine文に相当する記述について質問します。 javaでは、PIの場合は下記のimport文を記述しますと、 下記の如く、aにPIの値を代入できると思います。 ======================== import static java.lang.Math.PI; static public double a=PI; ======================== Q1) 自分用のpackageを作成して、例えば、この中にPI4即ち、PI*4を設定する方法を   お教え頂けますと大変あり難いです。 以上、宜しくお願いいたします。

  • Java
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • KSOH
  • ベストアンサー率93% (29/31)
回答No.2

#defineに相当する機能というよりここでやりたいことは「定数を定義する方法」ですよね? MathクラスのPIの定義と全く同じことをすればいいだけです。 pakcage mypackage public class MyMath {  public static final double PI4 = Math.PI * 4; } //上記を他のソースで使う package otherpackage import static mypackage.MyMath.PI4 class MyClass {  ...  double a = PI4;  ... }

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

https://docs.oracle.com/javase/jp/6/api/java/lang/Math.html#PI を読むとわかるのですが public static final double PI であり、staticでpublicでfinalなフィールドです。 #defineで定義される「マクロ」とは違います。 C++に対応させるなら public: static const double PI です。 自分で作るなら、同様に public(または、状況にあわせたアクセス) static final なフールドを定義します。

bakabon_X
質問者

補足

質問内容が、不明確かも知れませんので、再度、下記の如く補足説明を いたします。 #include file_name.cpp a=ABCD; でaに123456を代入 //file_name.cppの内容 #define ABCD 123456

関連するQ&A

  • import文の必要性

    Javaを勉強しているものです。 import文について質問させてください。 教材に、「java.langパッケージ以外のパッケージを利用する場合は、必ずimport文が必要です。」と記載されていました。 しかし、パッケージ名を含めたクラスのフルパスを記述すればimport文は、langパッケージに限らず、すべて不要なのではないのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Javaの初期化メソッドについて

    こんにちは。Javaの初心者です。 Javaの初期化メソッド(initメソッド)についてなのですが、処理を記述しても実行してくれません。 恐らく使い方が間違ってるかと思われるのですが、ネットで調べてもあまり検索結果がでてこなかったので、質問させてもらいました。 以下サンプルコード import java.lang.*; public class Test { static int a; public void init() { a = 10; } public static void main(String[] args) { System.out.println(a); } } 実行してみても、「0」と表示されるだけで、「10」と表示してくれませんでした。 どこかコードが間違えてるのでしょうか? それとも初期化メソッドはアプレット用であってアプレットで使わないと意味がないというものなのでしょうか? 因みに関係ないかと思われますが、グローバル変数は自動的に初期化される(0が代入される)ということは知っています。 ご教授の方、よろしくお願い致します。

    • ベストアンサー
    • Java
  • java import文のエラー

    javaのソースで、パッケージをimportして使用するための簡単なサンプルを作成しました。 import文でクラス名まで指定すれば問題ないのですが、*を利用するとコンパイルエラーとなってしまいます。 コンパイル時にクラスパスを指定するのかと思って試してみましたが、やはりエラーでした。 回避方法をご存知の方いらっしゃいましたら、教えていただけますでしょうか。 なお、java/javacは、1.5.0_14を使用しています。 ■ソースコード(1) <C:\Work\Test\PackTest.java> package Test; public class PackTest{   public static void methodA(){     System.out.println("パッケージ成功");   } } ■ソースコード(2) <C:\Work\UsePack.java> import Test.*;     //import Test.PackTest; なら成功 class UsePack{   public static void main(String args[]){     PackTest.methodA();   } } ■エラー例(1) >javac -d . PackTest.java (これは成功) >javac UsePack.java   UsePack.java:5: PackTest にアクセスできません。   クラスファイル .\PackTest.java は不正です。   ファイルにクラス PackTest が含まれていません。   削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。     PackTest.methodA(); ■エラー例(2) >javac -d . PackTest.java (これは成功) >javac -classpath C:\Work\Test UsePack.java   UsePack.java:1: パッケージ Test は存在しません。   import Test.*;   ^   UsePack.java:5: PackTest にアクセスできません。   クラスファイル C:\Work\Test\PackTest.class は不正です。   クラスファイル Test.PackTest に不正なクラスがあります。   削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。      PackTest.methodA();      ^

  • 先に計算したほうがいいのでしょうか?

    下記のプログラムを作ったのですが、 Math.PI / 180 の部分は先に計算しておいたほうが処理が 早くなると言われたのですがそうなのでしょうか? 先に掛け算をしないといけないような気がするのですが。 import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.lang.Math; public class Test9 { public static void main(String[] args) { int r = (args.length > 0)? Integer.parseInt(args[0]):100; int n = (args.length > 1)? Integer.parseInt(args[1]):16; int x, y, x1, y1; try { BufferedImage image=new BufferedImage(r*2+10,r*2+10,BufferedImage.TYPE_INT_RGB); Graphics2D g2d=image.createGraphics(); g2d.setBackground(Color.WHITE); g2d.clearRect(0,0,r*2+10,r*2+10); g2d.setColor(Color.BLACK); for ( double i = 0.0; i < 360.0; i += 360.0 / n ) { x1 = (int) ( r * Math.cos( i * Math.PI / 180 ) ); y1 = (int) ( r * Math.sin( i * Math.PI / 180 ) ); for( double j = i + 360 / n; j < 360.0; j += 360.0 / n ) { x = (int) ( r * Math.cos( j * Math.PI / 180 ) ); y = (int) ( r * Math.sin( j * Math.PI / 180 ) ); g2d.drawLine( x1 + r + 5, y1 * (-1) + r + 5, x + r + 5, y * (-1) + r + 5 ); } } ImageIO.write(image, "JPEG", new File("c:\\test9.jpg")); } catch(Exception e) { e.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • Javaのクラスライブラリ(?)の場所は?

    Javaを学び始めて3日のものです。 別に知る必要はないかもしれないのですが、 java.langパッケージのようなimport文を必要としない ライブラリはハードディスクのどのファイルの中に収まって いるのでしょうか? なぜ使用できるのかがわからないと気分が悪いです。 ちなみにWindows98でJDKは1.3.1で 「C:\Program Files\jdk1.3.1」にインストールしました。

    • ベストアンサー
    • Java
  • javascript中の記述でのJSP文<%%>

    javascriptの記述中に以下のような分岐文を作成しました。 ただこれを実行したところ、arrの値に関係なくソース下記に記述しているbbの値が代入されてしまいました。 条件によってどちらか片方だけを通り、片方だけを代入したいのですが可能でしょうか。 他の方法があればご教示お願いします。 if(arr[0].checked) <%a= "aa"; %> if(arr[1].checked) <%a= "bb"; %>

  • Javaアソシエイツの練習問題について

    以下の問題文について、なぜ答えがそうなのか疑問が解決できないので投稿させていただきます。どなたか教えてください。 【問題文】 以下の空欄に入れてコンパイルしたとき、コンパイルエラーとなるものはどれか? import java.util.*; ( 空欄 ) class Sample() 【選択肢】 A.interface Inter{} B.class MyClass{} C.package exam; D.import java.io.*; 【回答】 C <解説> パッケージ宣言はソースファイルの先頭に1つだけ記述できるが、 複数宣言するとエラーとなる。 問題文にパッケージ宣言はないと思うのですが。。。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのパッケージについての質問です。

    すっきりわかるjava入門という本を参考にjavaを勉強しているのですが、 6.3パッケージを利用する という項目でサンプルコードに従って同じファイルの中に package calcapp.main; public class Calc{ public static void main(String[]args){ int a=10;int b=2; int total=calcapp.logics.CalcLogic.tasu(a,b); int delta=calcapp.logics.CalcLogic.hiku(a,b); System.out.println("足したら"+total+"引いたら"+delta); } } と package calcapp.logics; public class CalcLogic{ public static int tasu(int a,int b){ return(a+b); } public static int hiku(int a,int b){ return(a-b); } } という、二つの違うパッケージに入ったソースコードを作って、コンパイルしてみたのですが、 コマンドプロンプトに、javac CalcLogic.javaと打つ方は上手くいくのですが javac Calc.javaの方はパッケージcalcapp.logicsは存在しません、と言われ上手くいきません。 また、javac CalcLogic.java Calc.javaと打つとコンパイルは上手くいくのですが java Calcはexception in thread"main"java.lang.NoClassDefFoundErrorとでて上手くいきません。 長文の上足りない情報があったりするかもしれませんがわからなくて困っているのでどなたか教えていただけると 助かります。よろしくお願いします。

    • ベストアンサー
    • Java
  • C言語switch文のcase記述について

    switch文のcaseがたくさんあるため、ソースファイルとして外だししたいと思っています。 ただ、switch文そのものはきちんと記述し、caseの部分だけを外だしできればと考えています。 例 switch (a) { case 1: case 2: : :(たくさん続く) 処理A; case 100; case 101; : : (これまたたくさん続く)  処理B; } を switch (a) { A_WO_SURU_JOUKEN  /* この記述を外だししたい */ 処理A; B_WO_SURU_JOUKEN /* 同じく */ 処理B; } といった具合にしてみたいということです。 ヘッダファイルを使う、defineでの記述で可能といったものを教えていただければ幸いです。

  • javaのstatic メソッドのthisについて

    javaの『static メソッド』の中では、thisが使用できないようです(下記のコード参照)。 毎度、お世話になります。 Q1) このthisに代わる記述、方法はありますか? static void start_threadFFT(int sw_curve){ ..... new Thread(this).start(); .... } 以上、宜しくお願い申し上げます。

    • ベストアンサー
    • Java

専門家に質問してみよう