java 调用参数的和对象的关系。问题在注释里。

class Main {
public static void main(String[] args) {
A a1 =new A();
System.out.println(a1.b);
}
}
//都说私有的不能在别的类,直接调用。或是说
//类与类之间的方法调用。那这都说的类之间。
//那和实例化的对象还有什么关系。
//就像是我把对象a1放在了main类的方法中。
//那这对象和类之间的调用有什么关系
class A {
private int a=1;
int b=2;

 }
 
 
 class B{
     int  i=3;
 }

1、私有的属性和方法不能在外部直接调用,所说的类与类之间的方法调用,就是说不在本类中调用,而在其他类中调用是不可以直接调用其私有方法的。
2、对象和类之间的调用,是指的该实例化对象在其他类中不能直接调用其私有属性和方法。
例如你写的class A 定义一个私有属性private int a = 1;和私有方法 private void testA(); 在类class Main中创建A的对象a1是不能使用a1.a调用私有属性a,也不能使用a1.testA();调用私用方法testA();

私有的不能在别的类中直接调用。类只是一个抽象的,具体操作时,还是通过具体的类对象,所以指的也是类对象不能在其他类中调用私有属性或者方法。
类是抽象概念,对象是类的具体实例。
通常,将属性私有化,对外提供公有方法来间接获取、设置属性的值。

如果你的类加 static 关键字修饰属于静态类,则不能进行实例化,直接用类调用。
没有进行static 修饰的类都需要进行实例化,然后才能正常调用

img

new A(); 是创建这个类的对象 A a1 = 和定义变量一个意思,所以a1有A类中的方法

类是定义,比如描述一个动物,你可能只需要某几种属性来定义一个类型,但是具体操作,比如设置这些属性的值,你就只能通过这个类的实例来操作,实例就是类的具体表现

对于普通方法,需要先生成类的对象实例,然后通过对象调用方法;添加static的方法,可以直接通过类名进行调用

调用肯定是对象或者类实例来调用在类中定义的方法或者属性,这个类中定义的private public就起作用了呀

这根私有没什么关系,问题在于,实例和类不是一个东西,static修饰是静态才是属于类的,全局仅此一份,可以通过类名直接调用;非静态的属性通过实例化类获得对象得到,每个对象都有自己的成员属性。
再者,不管什么变量都不可能通过实例的引用去调用,也就是你代码里的a1,你应该在A类里添加方法 public Integer getA(){return this.b},主类调a.getA()才能获取b。