对象:现实世界中客观存在的物体,具有属性和方法 属性描述对象的特征 属性描述对象的行为(能干什么) 类:具有相同属性和方法的多个对象的合集 类是抽象的,对象是具体的 类是模板,通过类来创建对象,创建的对象就具有类中定义的属性和方法
类和对象的关系
类是对象的抽象,对象是类的具体
类是抽象的概念,仅仅是模板
对象是一个你能够看得到、摸得着的具体实体
Java模板
类定义属性和定义方法:
定义属性: 访问权限修饰符(暂时不写) 属性类型(数据类型) 属性名(变量名);
定义方法: 访问权限修饰符 返回值类型 方法名(参数列表[可以不写]){方法体}
//定义属性: 访问权限修饰符(暂时不写) 属性类型(数据类型) 属性名(变量名);
//学校名称
public String schoolName;
//学校地址
public String schoolAddres;
//学校成立至今的年数
int age;
//定义方法: 访问权限修饰符 返回值类型 方法名(参数列表[可以不写]){方法体}
public void print(){
System.out.println("测试语句");
}
简单示例:(类和对象定义,对象调用类属性,调用方法)
package demo;
public class Student {
//定义属性
String name;
int age;
String classes;
String hobby;
//定义方法
public void print(){
System.out.println(name);
System.out.println("年龄:"+age);
System.out.println("就读于:"+classes);
System.out.println("爱好:"+hobby);
}
}
package demo;
public class StudentTest {
public static void main(String[] args) {
//创建Student类对象
Student stu1 = new Student();
//给对象stu1属性赋值
stu1.name ="张浩";
stu1.age = 10;
stu1.classes = "S1班";
stu1.hobby = "篮球";
// System.out.println(stu1.name);
// System.out.println("年龄:"+stu1.age);
// System.out.println("就读于:"+stu1.classes);
// System.out.println("爱好:"+stu1.hobby);
stu1.print();
System.out.println("----------------------");
Student stu2 = new Student();
stu2.name = "李四";
stu2.age=11;
stu2.classes = "S2班";
stu2.hobby = "游泳";
// System.out.println(stu2.name);
// System.out.println("年龄:"+stu2.age);
// System.out.println("就读于:"+stu2.classes);
// System.out.println("爱好:"+stu2.hobby);
stu2.print();
}
}
方法
方法的定义语法: 访问权限修饰符 返回值类型 方法名(数据类型 变量名1,数据类型 变量名2,......,数据类型 变量名n){方法体} 1)访问权限修饰符一共有四种:public(公共的),protected(受保护的),默认的(不写),private(私有的)
2)返回值类型: 无返回值类型:没有返回值的时候 写void 有返回值类型: 返回值一般是八大基本数据类型 也可以是引用数据类型
3)方法名: 采用小驼峰命名法, 见名知意
4)方法的参数列表: 可以有也可以没有 有参数时,参数可以是一个也可以是多个
5)方法体:即方法能具体干什么事情的代码 方法根据是否有返回值和参数分类:
1)无返回值的无参方法;
2)无返回值的有参方法;
3)有返回值的无参方法;
4)有返回值的有参方法; 调用有返回值的方法注意事项: 调用一个有返回值的方法,对于返回的结果,可以直接输出,也可以使用返回类型的变量去接收返回值 调用需要传递参数的有参方法注意事项: 方法需要多少个参数,就要传递多少个参数,并且需要按照其定义的顺序传递参数 综上所述,调用方法的两个原则是:
1)给什么接什么------->返回什么结果给你,就用什么变量接收
2)要什么给什么------->方法需要什么参数,你就要给什么参数
方法根据是否有返回值分为:无返回值的方法和有返回值的方法
示例:
package demo;
public class MethodDemo01 {
// 方法根据是否有返回值分为:无返回值的方法和有返回值的方法
// 方法没有返回值,返回值类型写void
public void noVoid() {
System.out.println("我是没有返回值的方法");
}
// 方法有返回值,返回值是什么类型,就写什么类型,返回值类型可以是基本数据类型,也可以是引用数据类型,方法有返回值,需要使用return将结果返回
public int returnInt() {
return 100;
}
public static void main(String[] args) {
// 方法需要通过对象来调用
MethodDemo01 md = new MethodDemo01();
// 调用的方法没有返回值,不需要用变量接收
md.noVoid();
// 调用有返回值的方法,你可以根据情况决定是否用变量来接收返回值
System.out.println(md.returnInt());
int num = md.returnInt();
System.out.println(num);
}
}
方法根据有没有参数分为无参方法和有参方法
示例:
package demo;
public class MethodDemo02 {
// 方法根据有没有参数分为无参方法和有参方法
// 定义无参方法
public void noParameter() {
System.out.println("我是一个无参方法");
}
// 定义有参方法
public void havaOneParameter(int num) {//形参
System.out.println("你传进来的参数是:" + num);
}
// 定义有两个参数的方法
public void havaTwoParameter(String name, int age) {
System.out.println("你的姓名是:" + name + ",年龄是:" + age);
}
public static void main(String[] args) {
// 创建MethodDemo02类对象
MethodDemo02 md = new MethodDemo02();
md.noParameter();
md.havaOneParameter(200);//200是实参
int a = 1000;
md.havaOneParameter(a);//a是实参
md.havaTwoParameter("zhangsan", 10);
String str = "hello";
int m = 100;
md.havaTwoParameter(str, m);
}
}