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()之中的一个,而且调用的位置只能在构造器的第一行<待实践>
今天做一套题,在这个地方居然又错了,且行且修正。
static/image/hrline/line7.png
重申——只要有一个类定义,编译程序就会产生一个.class文档(重点♥)
一个.java的文件中最多只能有一个public类,但如果没有写public(意思就是修饰符是default),只要程序正确,就可以通过编译。
<即一个文件中public的类可以有0个或1个。>(理解♥)
我的观察:这两者的区别的如果是public类,源文件名就必须与之一致。
如果其中没有public类且只有一个类,那么源文件名就必须与之一致。
如果其中没有public类且不只有一个类,那么源文件名要与其中一个类名一致。(逐步修正♥)
页:
[1]