类是对一组具备相同特征和行为的对象的抽象描述。java
为何会有类的概念?c++
现实生活中为了更好的区分事物,把事物进行归类,进而更好的认识事物。 编程
对象是类的具体实现,表示一个独立的、惟一的个体。oop
类是抽象的,是一个群体概念。对象是具体的,是一个独立个体。spa
一个独立的对象必定属于某个类。理解为类包含对象对象
类或者对象具备的特征在程序中称为属性(property/attribute)blog
具体对象的属性拥有的数据称为属性值。内存
属于同一类对象都具备相同的属性,但各个对象都拥有各自的属性值。这些属性值区分了不一样的对象。ci
类或者对象的行为称为方法(Method)作用域
在java中
类是具备相同属性和方法的对象的集合。
对象是用来描述客观事物的一个实体,由一组属性和方法构成。
类是对象的类型。
开发者能够根据须要自定义类,语法
[修饰符] class 类名{ 属性 方法 } |
案例:定义一个类,实例化对象
public class Student{
// 声明类的属性 String sid; String name; int age; char gender;
// 声明方法 public void learn(String cName){ System.out.println(name+" learn "+cName); } } |
public class Test01{ public static void main(String[] args){
// 经过Student类建立对象 /* Student stu; stu = new Student(); */
// stu是Student的一个对象,也是Student的一个实例 // new 操做就是实例化过程 Student stu = new Student(); // 给属性赋值(.语法) stu.name = "张三"; stu.sid = "001"; // 调用方法 stu.learn("java");
Student stu2 = new Student(); stu2.name = "李四"; stu2.sid = "001"; stu2.learn("c++");
} } |
局部变量:在方法或者语句块中声明的变量称为局部变量,语句块就是做用域。
局部变量在其所在的做用域有效,出了做用域就无效。
做用域能够嵌套,内部做用域能够访问外部做用域的变量。
public void learn(String cName){ // 方法中定义的局部变量 System.out.println(name+" learn "+cName);
// 语句块中定义局部变量 { int count = 10; System.out.println(" count "+count); System.out.println("cname"+cName); }
// System.out.println(" count "+count); } |
成员变量:在方法外部,类的内部定义的变量称为类的成员变量,简称成员变量。有些地方把属性称为filed(字段)
成员变量必须经过类的实例/对象调用,例如 stu.name ,有时成员变量也称为实例变量。
成员变量 == 属性 == 字段 == 实例变量
类中包含两个成员:成员变量和成员方法。
[修饰符] 属性类型 属性名称 [=默认值] |
在定义成员变量时能够对其初始化,若是不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0 char:\u0000, boolean:false, 全部引用类型:null)
属性/成员变量的做用域范围是整个类体。
|
面向对象编程(oop),把一切都看出对象,经过类构造对象,java程序都是经过class类组织的。
所谓面向对象经过类构造对象,使用对象完成需求。
需求:用手机播放一首歌曲
public class Phone{
String brand; String type; float price;
public void showInfo(){ System.out.print("品牌:"+brand); System.out.print(",型号:"+type); System.out.println(",价格:"+price); }
public void play(Music music){ System.out.println("正在用"+brand+type+"播放<<"+music.name+">>歌曲"); music.showInfo(); } } |
public class Music{
String name; String actor; int times; String content;
public void showInfo(){ System.out.println("-- "+name+" --"); System.out.println("演唱者:"+actor);
int h = times / 3600; int m = times % 3600 / 60; int s = times % 60;
System.out.println("时长:"+h+":"+m+":"+s); System.out.println(content); } } |
public class Test01{ public static void main(String[] args){
Music music = new Music(); music.name = "向天再借五百年"; music.actor = "韩磊"; music.times = 356; music.content = "沿着江山起起伏伏温柔的曲线,\n放马爱的中原爱的北国和江南";
Phone phone = new Phone(); phone.brand = "Apple"; phone.type = "iPhone XR"; phone.price = 5999.0f;
phone.play(music);
} } |
··
总结
面向对象编程就是完成一个复杂的需求须要各个对象之间相互配合完成。对象的建立须要定义类型,java程序就是经过类来组织程序的。
java中一切都是对象。
根据业务中的对象抽象成计算机可识别的类,简单的说就是抽出各个对象像的部分。
抽象的步骤
[1] 发现类(归类)。类通常用名词。
[2] 发现类的属性(特征)。属性通常用名词。发现类的属性时,通常只放和业务相关的属性。
[3] 发现类的方法(行为)。方法通常是动词。只放和业务相关的方法。
|
+ public / – private