类的概念与知识:
1.类是描述实体的模板,基本上所有的鸟具有翅膀这个特性和鸟能飞翔这个行为,具有相同特征和行为的统称为类,类是封装对象的属性(成员变量)和行为(方法)的载体。有成员变量(对象的属性),成员方法(成员函数),构造方法(作用:给成员变量赋值)。
2.成员变量
public class Book{ //定义一个书类
private String name; //定义String类型的成员变量
public void setName(String name){ //成员变量name的set方法
this.name = name; //将参数值赋给成员变量name
}
public String getName(){ //成员变量name的get方法
return name;
}
}
public class Main {
public static void main(String[] args) {// 创建一个 Book 对象
Book myBook = new Book(); //将新创建的Book对象赋给名为myBook的变量
myBook.setName("Introduction to Java"); // 获取书的名称并打印
String bookName = myBook.getName();
System.out.println("书的名称是: " + bookName);
}
}
3.成员方法
修饰权限 返回值类型 方法名(参数类型 参数){
方法体
return 返回值;
}
4.权限修饰符
Java 中的权限修饰符主要包括private、public和 protected,这些修饰符控制着对类和类的成员变量以及成员方法的访问。-
public(除了可以在本类访问使用成员变量、方法,还可以在子类和其他包的类中使用)>protected ( protected,修饰类的时候,只有本包内的该类的子类和其他类可以访问该类中的成员变量和成员方法)>default(默认)(同一个包中任意类都可以访问相互之间的变
量)>private(同一个包中一个类才能访问该类中的成员方法、变量)
5.局部变量
如果在成员方法中定义一个变量,方法的形参都是一个局部变量,局部变量在使用时必须先进行赋值操作或初始化。-
6.this
public void setName(String name){ //定义一个setName()方法
this.name = name; //将参数赋给类中的成员变量
}
this.name中name是成员变量,赋值符号后面的name是形参的name;7.构造方法
构造方法是一个与类同名的方法,对象的创建是通过构造方法完成的。样例: public method(){}
注意:一定要加一个无参构造函数(当类中只要定义了一个构造方法,系统将不再自动创建一个无参构造。如果类中没有定义无参构造,定义了含参构造,这是试图使用无参构造方法实例化一个对象时,编译器会报错。所以只有在类中没有定义任何构造方法时,编译器才会自动创建无参构造,因此我们应该养成一个习惯,定义类时手动提供一个无参构造函数。
8.静态成员和静态方法
static关键字用于创建类的静态变量和静态方法,被static修饰的变量和方法称为静态变量和静态方法,静态变量和静态方法被称为静态成员,静态成员属于类所有。
注意:
1静态方法中不可以使用this关键字。
2静态方法中不可以直接调用非静态方法。
3局部变量不可以使用static关键字声明。
4主方法必须用static声明。
5只有内部类可以使用static关键字声明。
9.类的主方法
public static void main(String[] args){方法体}
10.类的实例
class Student{//类
String name;// 成员变量
int age;// 成员变量
String sex;// 成员变量
public Student(){}//成员方法,无参构造方法
public Student(String name,int age,String sex){this.name=name;this.age=age;this.sex=sex;}// 含三个参数的构造方法
public void introduce(){study();System.out.println(name+” ”+age+” ”+sex);}//成员方法
public void study(){System.out.println(“good up”);}//成员方法
}
public class Demo4_14{
public static void main(String[] args){//类的主方法
Student s=new Student(“张欢”,66,”女”);//创建一个对象赋值给s
s.introduce();//对象s调用introduce()方法
}
}