大家可以关注一下我的博客 我的博客所有随笔都是我从基础开始学习java的所有知识点
类(Class)的概念
类是对一组具有相同特征和行为的对象的抽象描述。
理解:
[1] 类包含了两个要素:特性和行为 => 同一类事物具有相同的特征和行为。
[2] 类是一个群体性概念。例如:网红、明星、草根、宅男、萝莉、沙雕
[3] 类可以理解为现实生活中所说的 “类型”
为什么会有类的概念?
现实生活中为了更好的区分事物,把事物进行归类,进而更好的认识事物。
在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物
对象的概念
对象是类的具体实现,表示一个独立的、唯一的个体。
理解
[1] 对象是通过类生成的。对象一定具备该类的特性和行为。
[2] 对象是个体。类是群体。=> 对象是独立的、唯一的。=> 属于同一类型的对象也是相互独立的。
类和对象的区别
类是抽象的,是一个群体概念。对象是具体的,是一个独立个体。
一个独立的对象一定属于某个类。理解为类包含对象
属性
类或者对象具有的特征在程序中称为属性(property/attribute)
具体对象的属性拥有的数据称为属性值。
属于同一类对象都具有相同的属性,但各个对象都拥有各自的属性值。这些属性值区分了不同的对象。
方法
类或者对象的行为称为方法(Method)
在java中
类是具有相同属性和方法的对象的集合。
对象是用来描述客观事物的一个实体,由一组属性和方法构成。
类是对象的类型。
属性的声明
[修饰符] 属性类型 属性名称 [=默认值] |
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0 char:\u0000, boolean:false, 所有引用类型:null)
属性/成员变量的作用域范围是整个类体。
定义类和对象
开发者可以根据需要自定义类,语法
案例:定义一个类,实例化对象
//类:学生 属性:学号,名字,年龄,性别 方法:1. learn 2. showInfo //创建一个类,Student类的名字{属性{方法}} public class Student { //声明类的属性;【修饰符】+数据类型+变量名+【默认值】【】可省略 //一般修饰符省略,默认值不赋值, String sid;//学号 String name;//名字 int age;//年龄 char gender;//性别 //声明方法public void 方法名(数据类型 变量名名) public void learn(String cName){//cName是方法本身的变量(局部变量)只在方法本身使用 System.out.println(cName+"名字为:"+name+"学号为:"+sid+"年龄为:"+age+"性别为:"+gender);//输出(变量名) }//方法本身没变量,属性值遍历输出 public void showInfo(){ System.out.println(name); System.out.println(sid); System.out.println(age); System.out.println(gender); } }
//类:学生 属性:学号,名字,年龄,性别 方法:1. learn 2. showInfo public class Huang01 { public static void main(String[] args){ //通过Student类创建对象 //Student stu; //stu = new Student(); // stu是Student类的一个对象,也是Student的一个实例 //new 操作就是实例化过程 Student stu =new Student(); stu.name="张三";//给属性赋值 对象名.属性名=属性值 stu.sid="1235"; stu.gender='男'; stu.age=20; //调用方法,对象名.方法名() stu.learn("输出效果--");//方法本身有变量就需要输入数值,没有括号为空 stu.showInfo(); Student stu2 =new Student(); stu2.name="李四";/ stu2.sid="123"; stu2.gender='男'; stu2.age=25; stu2.learn("输出效果--"); stu2.showInfo(); } }
局部变量和成员变量
如果在一个作用域中,局部变量和成员变量同名,局部变量的优先级更高。
局部变量在其所在的作用域有效,出了作用域就无效。
成员变量:在方法外部,类的内部定义的变量称为类的成员变量,简称成员变量。有些地方把属性称为filed(字段)
成员变量必须通过类的实例/对象调用,例如 stu.name ,有时成员变量也称为实例变量。
成员变量 == 属性 == 字段 == 实例变量
类中包含两个成员:成员变量和成员方法。
//需求:用手机播放一首歌曲
//创建CellPhone类 public class CellPhone { String brand ; String pigment; String tupe; float price; public void adm(){ System.out.println("手机品牌:"+brand); System.out.println("手机颜色:"+pigment); System.out.println("手机型号:"+tupe); System.out.println("手机价格:"+price); }//class括号内为成员变量,方法内的变量为局部变量 }
//创建Music类
public class Music {
String name;
String actor;
int times;
String content;
public void showInfo(){
System.out.println(name);
System.out.println("演唱者:"+actor);
int a=times/3600;
int b=times%3600/60;
int c=times%60;
System.out.println("时间"+a+":"+b+":"+c); 时间为s,所以 小时:分钟:秒
System.out.println(content);
}
}
public class Huang02 {
public static void main(String [] args) {
CellPhone music=new CellPhone();
music.brand="OPPO";
music.pigment="红色";
music.tupe="R21";
music.price=9999;
music.adm();
Music music1=new Music();
music1.name="那2002年的第一次雪";
music1.actor="刀郎";
music1.times=600; //时间为s
music1.content="那2002年的第一次雪";
music1.showInfo();
}
}
总结
面向对象编程就是完成一个复杂的需求需要各个对象之间相互配合完成。对象的创建需要定义类型,java程序就是通过类来组织程序的。
java中一切都是对象。
抽象的概念
根据业务中的对象抽象成计算机可识别的类,简单的说就是抽出各个对象像的部分。
抽象的步骤
[1] 发现类(归类)。类一般用名词。
[2] 发现类的属性(特征)。属性一般用名词。发现类的属性时,一般只放和业务相关的属性。
[3] 发现类的方法(行为)。方法一般是动词。只放和业务相关的方法。
抽象一个下载类。
[1] DownLoad类
[2] url/name/size/progress/type/location…
[3] start()/pause()/stop()/delete()…