如何在java中从一个类到另一个类访问变量

如何在java中从一个类到另一个类访问变量,java,class,Java,Class,Nokta类是x和y的坐标,Cizgi类是两点之间的线。我试图从Cizgi类访问x和y,并计算这两点之间的距离。我正在尝试访问,但无法访问。如何从Cizgi类访问x和y public class Cizgi { Nokta n1; Nokta n2; public Cizgi(Nokta nokta1, Nokta nokta2) { n1 = nokta1; n2 = nokta2; } } public class Nokt

Nokta类是x和y的坐标,Cizgi类是两点之间的线。我试图从Cizgi类访问x和y,并计算这两点之间的距离。我正在尝试访问,但无法访问。如何从Cizgi类访问x和y

public class Cizgi {

    Nokta n1;
    Nokta n2;
    public Cizgi(Nokta nokta1, Nokta nokta2) {
        n1 = nokta1;
        n2 = nokta2;
    }
}

public class Nokta {
     int x;
     int y;

        Nokta(int x, int y){
            this.x= x;
            this.y=y;
        }
}

public class Main {

    public static void main(String[] args) {
        Nokta nokta1= new Nokta(3,5);
        Nokta nokta2= new Nokta(6,1);
        Cizgi cizgi1=new Cizgi(nokta1, nokta2);      
    }
}

您是否尝试创建getter

public Nokta getNokta1(){
返回nokta1;
} 
如果您没有像private/protected/public那样配置“可见性访问”,它将在包内访问时为公共,在包外访问时为私有

因此:

公共类Cizgi{
私人Nokta n1;
私人诺克塔n2;
公共Cizgi(Nokta nokta1、Nokta nokta2){
n1=nokta1;
n2=nokta2;
}
公共Nokta getNokta1(){
返回此文件。n1;
}
公共Nokta getNokta2(){
归还此文件。n2;
}
}
公共类Nokta{
私人INTX;
私营企业;
诺克塔(整数x,整数y){
这个.x=x;
这个。y=y;
}
公共int getX(){
归还这个.x;
}
公共int getY(){
把这个还给我;
}
}
公共类主{
公共静态void main(字符串[]args){
Nokta nokta1=新的Nokta(3,5);
Nokta nokta2=新的Nokta(6,1);
Cizgi cizgi1=新的Cizgi(nokta1、nokta2);
//您可以访问
int nokta2x1=cizgi1.getNokta2().getX()
}
}
更新评论。

公共类Cizgi{
Nokta-n1;
Nokta-n2;
公共Cizgi(Nokta nokta1、Nokta nokta2){
n1=nokta1;
n2=nokta2;
}
}
公共类Nokta{
int x;
int-y;
静态int z;
诺克塔(整数x,整数y){
z=x;(此处不工作“this”。工作:“Nokta.z”)
这个.x=x;
这个。y=y;
}
}
公共类主{
公共静态void main(字符串[]args){
Nokta nokta1=新的Nokta(3,5);
Nokta nokta2=新的Nokta(6,1);
Cizgi cizgi1=新的Cizgi(nokta1、nokta2);
Cizgi cizgi2=新的Cizgi(nokta2,nokta1);
//您可以访问
int x1=cizgi1.n1.x;//3
int staticX1=Nokta.z;//3
int x2=cizgi2.n1.x;//6
int staticX2=Nokta.z;//6(更改:3->6)
//错误:intz=cizgi2.n1.z;
}
}

您必须在此处使用继承。创建一个单独的类您创建了3个公共类,这将显示编译时错误。如果您不了解继承,请去了解它。youtube上有很多关于继承的教程,您也可以在此处使用接口

    public class Cizgi {

    Nokta n1;
    Nokta n2;
    public Cizgi(Nokta nokta1, Nokta nokta2) {
        n1 = nokta1;
        n2 = nokta2;
    }
}
再上一节课,一节新课

 public class Nokta extends Cizgi{
     int x;
     int y;

        Nokta(int x, int y){
            this.x= x;
            this.y=y;
        }
}
现在是另一门课,你的主课

    public class Main extends Nokta {

    public static void main(String[] args) {
        Nokta nokta1= new Nokta(3,5);
        Nokta nokta2= new Nokta(6,1);
        Cizgi cizgi1=new Cizgi(nokta1, nokta2);      
    }
}

这回答了你的问题吗?旁注:您可以使用Lombok projekt作为getter/setter快捷方式。在没有Cizgi.1的情况下,我能否以相同的方式访问Cizgi类中的x和y?如果未配置访问级别,并且当示例访问链为:“int x=cizgi1.n1.x”时,所有3个类都在一个包中。因为Cizgi包含Nkta实例,Nokta实例包含int值。您需要“cizgi1”,因为这是一个实例。不是“静态的”。如果我明白你想要什么。请勾选:“更新以获取评论。”在我的回答中勾选。