لقد تم تكليفك بمهمة كتابة برنامج يحدد عدد الفئات في مشروع Java. يجب أن يقوم برنامجك بتحليل قاعدة تعليمات Java معينة وحساب عدد الفئات الموجودة.

تحتاج إلى تنفيذ الوظيفة التالية:

```جافا
عدد الفئات العامة (رمز السلسلة)
```

**مدخل**:
- تأخذ الدالة معلمة سلسلة `code` (1 <= code.length <= 10^5)، تمثل قاعدة تعليمات Java. يتم ضمان صحة قاعدة التعليمات البرمجية من الناحية النحوية.

**انتاج**:
- يجب أن تقوم الدالة بإرجاع عدد صحيح يمثل العدد الإجمالي للفئات في قاعدة تعليمات Java.

**ملحوظة**:
- يتم تعريف الفئة في Java بالكلمة الأساسية `class`، متبوعة باسم الفئة، والكود الموجود بين قوسين متعرجين `{}`.
- قد تحتوي قاعدة بيانات Java على فئات متداخلة، ولكن سيتم احتساب الفئات الخارجية فقط.
- قد تحتوي قاعدة بيانات Java أيضًا على تعليقات أحادية السطر ومتعددة الأسطر، والتي يجب تجاهلها عند حساب الفئات.

**مثال**:
```جافا
رمز السلسلة = "حل الطبقة العامة {
                   public static void main(String[] args) {
                       System.out.println(\"مرحبا بالعالم!\");
                   }
               }";
countClasses(code); // الإخراج: 1

رمز السلسلة = "حل الطبقة العامة {
                   فئة خاصة InnerClass {
                       // فئة متداخلة
                   }
               }";
countClasses(code); // الإخراج: 1

رمز السلسلة = "// تعليق سطر واحد\n" ​​+
              "/* متعدد الأسطر\n" +
              "تعليق */\n" +
              "حل الطبقة العامة {
                   public static void main(String[] args) {
                       System.out.println(\"مرحبا بالعالم!\");
                   }
              }";
countClasses(code); // الإخراج: 1

رمز السلسلة = "حل الطبقة العامة {
                   الطبقة الداخلية {
                       // فئة متداخلة
                   }
               }
               الطبقة العامة AnotherClass {
                   // فئة أخرى
               }";
countClasses(code); // الإخراج: 2
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}