马太效应 发表于 2017-7-9 22:14:47

Java暑期学习Day05

本帖最后由 马太效应 于 2017-7-9 22:14 编辑

今天是第五天,希望我能坚持下去!{:7_113:}

先要明确:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言
          面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。程序=对象+对象+...


         结构化程序设计(面向过程)——程序=算法+数据结构 <如C语言>
         

① 要产生对象(Object)必须先定义类(Class),用class关键字;
    使用成员访问符“.”——a 给对象属性赋值 ——对象名.属性=值;
                                          b调用方法          —— 对象名.方法();   
   建立实例要new关键字;
      类:属性+方法

new Apple();
(以类名称声明的变量,称为参考名称、参考变量或直接叫参考。)

Apple a1();       <只要有一个类定义,编译程序就会产生一个.class文档>

   class Apple {//类是抽象的概念
      String color;
      int money;
}

public class Fisher {
      public static void main(String[] args) {
                Apple a1 = new Apple(); // 建立Apple实例(Instance)
      a1.color = "red";
                a1.money = 2;

                System.out.printf("a1(%s,%d)", a1.color, a1.money);// a1(red,2)
//用println会报错
      }

}


② 构造函数<构造器>(与类同名的方法)
      1.构造方法负责对象初始化工作,为对象的属性赋合适的初始值。
      2.创建对象时,其类的构造方法确保在用户操作对象之前,系统保证初始化的进行。



class Dog {
      String name;
      int year;

      Dog(String name, int year) { // 定义构造函数
                this.name = name; // name参数的值指定给这个name成员
                this.year = year;
      }

}

public class Bear {
      public static void main(String[] args) {

                Dog d1 = new Dog("cat", 12); // 使用指定构造函数建立对象
                System.out.printf("d1(%s,%d)", d1.name, d1.year); // d1(cat,12)

      }
}

a.如果我们类没有定义任何构造器,系统会提供一个默认的无参构造器
b.如果类已经定义了一个构造器,系统就不会再提供默认的无参构造器
(构造方法的调用:创建对象时自动调用)

   方法 与 构造器


相同点:可以有任何访问的修饰: public, protected, private或者没有修饰


不同点:a. 构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。 (方法可以)
            

public class Green {
        public String name;
        public int age;

        public String fangFaMing() { // String是返回类型

                return "Green的名字是" + name + ",年龄是" + age;//字符串连接
        }

        public static void main(String[] args) {
                Green green = new Green();
                green.age = 12;
                green.name = "绿色";
                System.out.println(green.fangFaMing());// Green的名字是绿色,年龄是12

        }

}


            b.方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
(如果方法有返回值,方法中必须使用关键字return返回该值,返回值类型为该方法所定义的返回值类型。
   ps:方法内可以调用其他的方法。)

            c. 构造方法:只有在对象创建的时候才会去调用,而且只会调用一次。
               一般方法:在对象创建之后才可以调用,并且可以调用多次。

         d.方法通常用小写字母开始,而构造器通常用大写字母开始。
             构造器通常是一个名词,因为它和类名相同;
             而方法通常更接近动词,因为它说明一个操作。
         
在一个构造器中只能使用this()或者super()之中的一个,而且调用的位置只能在构造器的第一行<待实践>




马太效应 发表于 2017-8-15 16:09:12

今天做一套题,在这个地方居然又错了,且行且修正。

static/image/hrline/line7.png

重申——只要有一个类定义,编译程序就会产生一个.class文档(重点♥)


一个.java的文件中最多只能有一个public类,但如果没有写public(意思就是修饰符是default),只要程序正确,就可以通过编译。
                     <即一个文件中public的类可以有0个或1个。>(理解♥)


我的观察:这两者的区别的如果是public类,源文件名就必须与之一致。
                   如果其中没有public类且只有一个类,那么源文件名就必须与之一致。
                   如果其中没有public类且不只有一个类,那么源文件名要与其中一个类名一致。(逐步修正♥)



                  
               
                  
页: [1]
查看完整版本: Java暑期学习Day05