java是一门面向对象语言,所以我们从对象讲起。类是具有共同的属性名称和行为的一组对象的抽象,而对象则是一个类的真实的例子。
让我们来看看一个例子
1.创建对象
System.out.println(new String("hello"));
//此操作将刚创建的对象传递给一个方法
String s = new String("helloworld");
在上面的例子中,我们可以知道String就是一个类,这是java自定义的类,我们会经常使用到它。要想使用对象,就必须首先构造对象。在java中,我们使用new操作符+构造器(构造方法)来构造对象。我们可以知道,构造器必须和类名相同。在第一条语句中,构造的对象仅仅使用了一次,我们希望构造的对象可以多次使用,就必须将对象放在一个变量中,比如第二条语句,让类型为String的变量s引用(变量s得到创建对象的地址)新构造的对象。
2.对象与对象变量的区别:
String s1;
s1 = s;
//或者s1 = new String();
第一条语句中的s1并不是一个对象,实际也没有引用对象,不能将任何String类的方法应用于这个变量。我们可以通过第二条语句初始化s1,此时s1和s引用同一个对象,或者用新构造的对象初始化。
所以,一个对象变量并没有包含一个对象,而只是引用一个对象。java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。
3.自定义类
- 权限修饰符:private,public,缺省,protected
- 作用:用来修饰属性和方法和类,代表着四种访问级别。
有类我们才能构造对象,首先我们自己设计一个Person类
下面归纳一下Java用于控制可见性的4个访问修饰符:
1)仅对本类可见——private。
2)对所有类可见——public。
3)对本包和所有子类可见——protected。
4)对本包可见——默认(很遗憾),不需要修饰符。
class Person{
//属性
String name;
int age;
boolean isMale;
//构造器
public Person() {
}
public Person(String n,int a) {
name = n;
age = a;
}
//方法
public void eat() {
String food = "烙饼";
System.out.println("人可以吃"+food);
}
public void talk(String language) {
System.out.println("人可以说话,使用的是"+language);
}
}
类的结构:属性和方法。
属性(成员变量)和局部变量的不同:
- 1.位置:属性定义在类的{}中局部变量定义在方法内,方法形参,代码块内,构造器形参,构造器内部的变量
- 2.权限修饰符:(private,public,缺省,protected—类的封装性)
属性:可以在声明属性时,指明其权限,使用权限修饰符
局部变量:不可以使用权限修饰符 - 3.默认初始化值:
属性:类的属性根据其类型都有初始化值
整型(byte,short,long,int):0
浮点型(float,double):0.0
字符型(char):0
布尔型(boolean):false
引用数据类型(类,数组,接口):null或存地址值
局部变量:没有默认初始化值,所以在调用之前要先赋值,形参在调用时赋值即可
5.类的编译
一个完整的程序中有若干个类,但是只能有一个public修饰的公共类,并且只有这个公共类有main方法。我们还是以Person类为例子。
public class Persontest {
public static void main(String[] args) {
//类的实例化,创建对象
Person p1 = new Person();
p1.name="Tom";
System.out.println(p1.name