鱼C论坛

 找回密码
 立即注册
查看: 4105|回复: 1

[学习笔记] Java暑期学习Day05

[复制链接]
发表于 2017-7-9 22:14:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

今天是第五天,希望我能坚持下去!

先要明确: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()之中的一个,而且调用的位置只能在构造器的第一行<待实践>




评分

参与人数 1鱼币 +6 收起 理由
小甲鱼 + 6

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-8-15 16:09:12 | 显示全部楼层
今天做一套题,在这个地方居然又错了,且行且修正。


                               
登录/注册后可看大图


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


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


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



                  
                 
                  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 12:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表