1.类:一种数据类型,引用数据类型,自定义的一种类型.用变量表示属性,用方法表示行为
对象: 具体存在的事物,符合类的定义特征
(1)类的定义格式:
class 类名{}``
(2)根据类创建对象格式:
每次new都是创建了一个新的对象
类名 对象名 = new 类名();
(3)给对象赋值,就相当于是给类中的成员变量赋值:
对象名.成员变量名 = 初始化值;
(4)成员方法的调用需要通过对象调用
对象名.成员方法名();
(5)一个文件内部定义多个类 只有一个类能被public修饰,而且被public修饰的这个类,一定要跟文件名保持一致
2.类里面的6大成员:
成员变量: 定义在类中方法外的变量,不被static修饰的变量叫做成员变量
成员方法: 不被static修饰方法叫做成员方法
静态变量: 被static修饰的变量,都是静态变量
静态方法: 被static修饰方法,都是静态方法
局部变量: 定义在方法内部的变量叫做局部变量,随着方法的调用而初始化,随着方法的消失而消失
构造方法: 方法名和类名一模一样,没有返回值(甚至连void都没有)的方法
补充:
(1)成员变量和局部变量:
成员变量(对象变量): 位于类中方法外,随着对象的创建而创建,随着对象的消失而消失,位于堆内存中 有初始化值
局部变量: 位于方法内部,作用范围只在当前方法内 随着方法运行而创建,随着方法的运行完毕而消失,位于栈内存中,进栈和出栈操作
(3)构造方法:
方法名和类名一模一样,但是没有返回值类型,连void都没有的方法,叫做构造方法
构造方法的主要作用就是为了创建对象而使用的
(4)构造方法可以重载:
我们把有参数列表的构造方法叫做有参构造
把没有参数列表的构造方法叫做无参构造
注意:
刚开始在创建对象的时候 我们没有写构造方法 为什么还能创建对象成功?
因为每个类里面默认的系统都会给定一个无参构造
只要你手动书写了一个构造方法,不管你手动书写的构造方法是无参还是有参,系统默认的那个无参构造都会消失
3.二维数组的定义和初始化方法:
(1)动态初始化:
数据类型[][]数组名 = new 数据类型[大数组的长度][小数组中的元素个数]
(2)静态初始化:
数据类型[][] 数组名 = {{元素1,元素2,…},{元素1,元素2,…},{元素1,元素2,…},{元素1,元素2,…},…}
4.封装:private
只允许本类访问
高内聚 低耦合
(1).先将成员变量私有化
(2).对外提供一套公共的赋值和取值方法
5.重要例题
package day07;
public class DogDemo {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setName("大白");
dog.setAge(6);
dog.setSex("公狗");
dog.show();
}
}
class Dog {
private String name;
private int age;
private String sex;
public void setName(String dogName) {
name = dogName;
}
public String getName() {
return name;
}
public void setAge(int dogAge) {
if (dogAge <= 0 || dogAge >= 15) {
System.out.println("年龄不合法");
return;
}
age = dogAge;
}
public int dogAge() {
return age;
}
public void setSex(String dogSex) {
if(dogSex.equals("公狗")||dogSex.equals("母狗")){
sex=dogSex;
}else{
System.out.println("性别错误");
return;
}
}
public String getSex() {
return sex;
}
public void show(){
System.out.println("姓名" + name + ", 年龄" + age + ", 性别" + sex );
}
}