类和方法
1.类:抽象概念,表示一类事物的总称
人类:属性——名字 年龄 性别
行为——吃 穿 睡
类统称:表示一类事物所具有的共同特征与行为
对象:类的一个实例
面向对象:c++ Java 一切皆对象 方便开发,松耦合
面向过程:c 所有事情都是一个个独立的方法 ,性能较高(嵌入式软件:单片机)
如何定义一个类
class Person{
}
人类{
若干属性…
若干方法/行为
}
注意:1.任何一个源文件有且只有一个主类(public class)并且源文件名称需要和主类保持一致
2.类的命名
类的命名和源文件的命名采用大驼峰命名法:所有单词的首字母全大写
变量的命名使用小驼峰命名法
class Person;
class ChinaPerson;
3.类的实例化
一个源文件中可以有若干个类(普通类)0——n
定义一个类只是规定了一类对象所具备的属性和行为
有了类之后,可以根据类来产生对象(类的实例化)
4.关键字new来产生对象
主方法main 存在主类之中
5.类中包含的内容
类中包含的内容:属性,方法/行为,类,接口,代码块
类中的属性——成员变量或者属性
类中的方法——成员放法或实例方法
问题1:如何通过对象来使用类中的属性
要通过引用数据类型访问属性和方法 属于**“."**操作符
问题2:关于属性默认值
基本数据类型:默认值
类中的成员变量与对象有关,当有对象产生时,才会开辟内存,分配空间
//类来产生对象
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
//类的实例化——>产生一个Person类的对象
/* Person per = new person();
per.name = "张三";
per.age = 18;
per.sex = "男";*/
Test 狗剩 = new Test();
// 类 给这个对象起的名字 = 类的对象
System.out.println(狗剩.a);
}
}
6.引用数据类型的默认值:null
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
//类的实例化——>产生一个Person类的对象
Person per = new Person();
/* per.name = "张三";
per.age = 18;
per.sex = "男";*/
/* Test 狗剩 = new Test();
// 类 给这个对象起的名字 = 类的对象*/
System.out.println(per.name);
}
}
7.可以在定义的时候给属性赋值
//class 定义一个类
class Person{
//属性
String name = "张三";
int age;
String sex;
//行为
void eat(){};
void sleep(){};
}
//类来产生对象
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
//类的实例化——>产生一个Person类的对象
Person per = new Person();
/* per.name = "张三";
per.age = 18;
per.sex = "男";*/
/* Test 狗剩 = new Test();
// 类 给这个对象起的名字 = 类的对象*/
System.out.println(per.name);
}
}
8.类中的成员方法
//class 定义一个类
class Person{
//属性
int age;
String sex;
//行为
void eat(){};
void sleep(){};
void show(){
System.out.println("My name is:"+name+",My age is:"+age);
}
}
//类来产生对象
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
//类的实例化——>产生一个Person类的对象
Person per = new Person();
Person per1 = new Person();
per.name = "张三";
per.age = 20;
per1.name = "柳飘飘";
per1.age = 101;
per.show();
per1.show();
}
}
总结:在类中的成员变量以及成员方法与对象强相关,有对象之后才能使用!!!
2.static关键字
static{
1.修饰变量(类属性)
2.修饰方法(类方法)
3.修饰代码块(静态块)
4.修饰内部类
}
1.static修饰属性—>类属性
当一个类中的属性,该类的所有对象值都相同(eg:国籍),此时这个属性不在与具体的对象相关,而与所关联的类相关,属性使用static修饰,表示类属性,在JVM方法区存储。
方法区:存储所有静态变量和常量
static
class Person{
//类属性
static String country;
}
//类来产生对象
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
//类的实例化——>产生一个Person类的对象
Person per = new Person();
Person per1 = new Person();
per.country = "台湾";
System.out.println(per1.country);
}
}
2.static修饰的变量称为类的静态变量或类属性
直接使用类名称来访问,不推荐使用对象访问
3.Java中static关键字一定不能出现在方法中
4.常量:一旦定义后就无法修改的变量,使用final关键字修饰,一般与static搭配使用
//class 定义一个类
class Person{
//常量,定义时必须初始化,并且之后无法修改
final static String COUNTYR = "中国";
}
public class Test {
public static void main(String[] args) {
System.out.println(Person.COUNTYR);
}
}
常量的命名规则:
所有单词全部大写!!!多个单词可以以_分隔
5.静态方法
类中使用static修饰方法-----类方法(与对象无关)
在成员方法中能否调用静态方法?Yes
类 对象
在静态方法中能否调用成员方法?No
对象 类
看见static与对象无关,与类本身有关
被static修饰的属性存储在JVM方法区,所有对象共享此变量(该类中的所有对象有且只有一个)
注:在*.java有且只有一个主类(public class)可以有若干个普通类
主类名称必须与源文件名保持一致