对象和类的概念:

类:类是一个模板,它描述一类对象的行为和状态。

对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

Java中的类:

定义类的基本格式:

[修饰符(可省略)]class ClassName{

零到多个构造器……

零到多个成员变量……

零到多个方法……

}

修饰符可以为public final abstract或者不写

命名格式:大驼峰命名

构造器:

构造器也叫构造方法或者构造函数,构造器与类名相同,没有返回值,连void都不能写;

构造器定义格式:[修饰符]类名(形参列表){构造器方法体代码}

名称与类名相同,没有返回值,不能写void

如果类中没有手动添加构造器,编译器会默认再添加一个无参构造器

如果手动添加了构造器(无论什么形式),默认构造器就会消失

构造器可以重载

 

成员变量:

成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

格式:[修饰符]type 成员变量名称[=默认值];

修饰符(public protected private)三选一、static、final

方法

Java方法是语句的集合,它们在一起执行一个功能。

方法是解决一类问题的步骤的有序组合

方法包含于类或对象中

方法在程序中被创建,在其它地方被引用

格式:[修饰符]方法的返回值类型 方法名称(形参列表){方法体代码 [return 返回值]}

修饰符(public、protected、private)三选一、static、final、synchronize、native

 

整体示例:

public class SimplePerson {
//构造器
public SimplePerson(){
}
//成员变量
String name;
int age;
//方法
public void say(String text){
System.out.println(this.age+" years ago "+this.name+" say:\""+text+"\"");
}
}

Java中的对象

创建对象

  对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

声明:声明一个对象,包括对象名称和对象类型。

实例化:使用关键字new来创建一个对象,只是为对象在内存中开辟空间。

初始化:使用new创建对象时,会调用构造方法初始化对象,对象中的值赋初始值。

格式:classTpye 对象名称=new classTpye();

public class Demo1 {
public static void main(String[] args) {
// ClassDemo classDemo=new ClassDemo();
// //声明对象
// SimplePerson simplePerson;
// //实例化对象new
// simplePerson=new SimplePerson();
//一般和在一起写
SimplePerson person=new SimplePerson();
}
}

访问实例变量和方法:

格式:

/* 访问类中的变量 */
//objName.variableName;
/* 访问类中的方法 */
//objName.methodName();
person.age=20;
person.name="ChengMu";
person.say("I have a dream!");

构造器的重载

构造器的重载,形参列表不同

public class Person {
int age;
String name;

//先定义成员变量再写构造器

/*构造器

 如果不定义,系统会提供一本默认的构造器(无参的)

 如果定义了构造器,系统默认的构造器就会被覆盖

 构造器定义

 [修饰符]构造器名称(类名)(形参列表) {}

 修饰符可以是public private protected,也可以不写

 构造器名称一定和类的名称相同*/

public Person(){//构造器重载,构造器列表参数的不同

//构造是没有返回方法的,没有返回类型的,定义了有参的构造器,无参的就没有了

System.out.println("无参构造器");
}
public Person(String name){//就近原则,会选择离最近的name,调用构造方法1
this.name=name;//就近原则
System.out.println("有参构造器1");
}
public Person(String name, int age){
//this()调用构造方法
//构造器不能调用自己
this(name);//调用构造方法1
this.age=age;
System.out.println("有参构造器2");
}
//this
public void say(String text){
System.out.println(this.age+"岁的"+this.name+"说:\""+text+"\"");
}

方法重载

重载时在一个类里面。方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载

重载规则

被重载的方法必须形参列表不一样(参数个数或类型不一样);

被重载的方法可以改变返回类型;

被重载的方法可以改变访问修饰符

被重载的方法可以声明新的或更广的检查异常;

方法能够在同一个类中或者在一个子类中被重载

返回值类型不能作为重载函数的区分标准。

示例代码:

//方法的重载overload
/*
 Java程序中确定一个方法需要三个要素。
 >调用者,也就是方法的所属者,既可以是类,也可以是对象。
 >方法名,方法的标识。
 >形参列表,当调用方法时,系统将会根据传入的实参列表匹配。
 方法重载的要求就是两同一不同:同一个类中方法名相同,参数列表不同。
 */
public void say(String text,String state){
System.out.println(this.age+"岁的"+this.name+state+" Say:\""+text+"\"");
}
//static标识符,加static代表着类的方法,或者类的成员变量。不加代表的是实例的new 的那个对象的
static int  intA=10;
public static void say1(String text){//加了static是属于类的方法,不加是属于对象的方法
//加了static就不能用this了,this代表一个对象实例化后的对象
//,加了static类的一个方法,在类里面无法调用其他对象、不能调用非static的方法
//加了static是属于类的成员变量,可以直接通过类名调用
System.out.println(text);
}