1.理解生活中类和对象
2.介绍面向对象编程
3.使用java创建类和对象
类和对象的关系
类是抽象的概念,是对象的模板
对象是具体的事物,是类的具体实例
面向对象编程
面向对象编程是利用编程方式体现出现实中类与对象
从已有现实的类中定义程序中的类(Class)
从类(Class)创建(实例化)具体的对象(Object)
创建类和对象
成员变量
成员变量就是隶属与对象的变量
成员变量用于保存对象的静态特征
同类型的不同第项拥有相同的成员变量,但值彼此独立
成员变量的定义![](https://img-blog.csdnimg.cn/b4c65bc8c4da4e44a856c5f59e5b6407.png)
成员变量的使用![](https://img-blog.csdnimg.cn/70bd16dd67f945e0845c77bf26b47004.png)
package ketanglianxi;
public class Dog {
String name;
int age;
float weight;
public static void main(String[] args) {
Dog duoduo=new Dog();
duoduo.name="多多";
duoduo.age=6;
duoduo.weight=13.5f;
Dog lucky=new Dog();
lucky.name="Lucky";
lucky.age=3;
lucky.weight=10.2f;
System.out.println(duoduo.name+"今天"+duoduo.age+"岁了");
System.out.println(lucky.name+"体重"+duoduo.weight+"千克");
}
}
输出语句
方法-Method
什么是方法
方法1(Method)是用于完成特定功能的整段代码
package ketanglianxi;
public class MethodSample01 {
public static void main(String[] args) {
int a=10;
if(a%2==0){
System.out.println(a+"是偶数");
}else {
System.out.println(a+"是奇数");
}
int b=5;
if(b%2==0) {
System.out.println(b+"是偶数");
}else {
System.out.println(b+"是奇数");
}
}
}
package ketanglianxi;
public class MethodSample01 {
public String isOddNumber(int num) {
if(num%2==0) {
return"偶数";
}else {
return"奇数";
}
}
public static void main(String[] args) {
// int a=10;
// if(a%2==0){
// System.out.println(a+"是偶数");
// }else {
// System.out.println(a+"是奇数");
// }
// int b=5;
// if(b%2==0) {
// System.out.println(b+"是偶数");
// }else {
// System.out.println(b+"是奇数");
// }
int a=10;
MethodSample01 methodSample01=new MethodSample01();
String r1=methodSample01.isOddNumber(a);
System.out.println(a+"是"+r1);
int b=5;
String r2=methodSample01.isOddNumber(b);
System.out.println(b+"是"+r2);
}
}
运行结果
包-Package
包-package
把功能相似或相关的类组织在同一个包中
包也采用了树形目录的存储方式
通过包也可限定类的访问权限
导包:
访问修饰符
访问修饰符用于控制类,成员变量,方法的访问范围
package com.imooc.object.sample1;
public class PackageSample01 {
//public代表其他任何类都能访问的成员变量
public String name;
//private代表只能在当前类中使用
private void sayHello() {
System.out.println("Hello world!");
}
//不写访问修饰符代表是默认修饰符,表示只能被包中其他类访问
void sayGoodbye() {
System.out.println("Good bye!");
}
public static void main(String[] args) {
PackageSample01 PackageSample01=new PackageSample01();
PackageSample01.sayHello();
}
}
面向对象特征之封装
现实中的封装![](https://img-blog.csdnimg.cn/2d09285adccb463c9f051334adc870dd.png)
对成员变量进行读写封装![](https://img-blog.csdnimg.cn/d021a334932f41f88b17abfc06e5967d.png)
package com.imooc.objectproject.sample3;
public class Algorithm {
//成员变量私有化
private String owner;//所有者
private String areaCode = "86";//国家区号private long mobileNumber;//手机号
//getter方法,getter方法用于读取成员变量的内容
// getter书写格式: public成员变量类型 get成员变量名(),PS:首字母大写public string getOwner (){
//this关键字代表当前对象的...return this.owner;
//setter方法,setter方法用于设置成员变量的内容
// setter书写格式: public void set成员变量名(新的数据参数)public void setowner (String owner){
this.owner = owner;
public String getAreaCode(){
this.owner =owner;
}
public String getAreaCode1 (){
return this.areaCode;
}}
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
封装的好处(优点):
1)通过隐藏对象的属性来保护对象内部的状态(隐藏信息、实现细节)。
2)提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展(将变化隔离,类内部的结构可以自由修改,增加内部实现部分的可替换性)。
3)禁止对象之间的不良交互提高模块化(良好的封装能够减少耦合)。
4)可以对成员变量进行更精确的控制。
5)容易保证类内部数据间的一致性,从而提高软件的可靠性。
package com.imooc.objectproject.sample3;
public class Algorithm {
protected String title;protected String color;protected String movie;public void description(){
System.out.println("型号:"+title);System.out.println("颜色:"+ color);
System. out.println("首次出现电影:" +movie);
}
private void fire(){
System. out.println("利用手臂燃料泵射出火焰");
}
public static void main (String[] args){
Algorithm mark1 =new Algorithm();
mark1 .color ="银灰色";
mark1 .movie ="钢铁侠1";
}}
继承错误
package com.imooc.objectproject.sample3;
//extends关键字用于类的继承
//extends关键字后面是"父类" , extends关键字前是"子类"
//子类会继承父类的(default)/protected/public修饰的成员变量与方法public class Hulk extends Mark1{
public class Algorithm {
public static void main (String[] args){
Algorithm hulk = new Algorithm();
hulk.title="反浩克装甲";hulk.color ="红色";
hulk.movie="复仇者联盟3";
}
package com.imooc.objectproject.sample3;
public class Mark85 extends Markl{
private void createShield(){
System.out.println("利用纳米技术生成防御护盾");
public static void main(String[] args){
Mark85 mark85 = new Mark85();
mark85.title ="马克85型";
mark85.color ="红色";
mark85.movie ="复仇者联盟4";mark85.description();
mark85.createshield();
}
}
面向对象特征之多态![](https://img-blog.csdnimg.cn/42e765a4346e4bc58e4fe8a1be588884.png)
package com.imooc.objectproject.sample5;
public class Language {
public void voice();
}
package com.imooc.objectproject.sample5;
public class Chinese implements Language{
public void voice (){
System.out.println("你好,有什么可以帮到您的?");
}
}
package com.imooc.objectproject.sample5;
public class English implements Language{
//@override
public void voice(){
System.out.println("Hi, may I help you?");
}}
ArrayList类
ArrayList是Java内置的数据集合,用于存储多个数据
ArrayList是数组替代品,提供了更多的数据操作方法
ArrayList几乎是每一个项目中必用的类
package com.imooc.objectproject.sample5;
public class ArrayList {
public static void main(String[] args) {
ArrayList bookList =new ArrayList();
bookList.add("红楼梦");
bookList.add("西游记");
bookList.add("水浒传");
bookList.add("三国志");
System.out.println(bookList);
}
private void add(String string) {
// TODO Auto-generated method stub
}
}
package com.imooc.objectproject.sample5;
public class ArrayList {public static void main (String [ ] args){
List bookList = new ArrayList ( ) ;
bookList.add ("红楼梦");
bookList .add ( "西游记");
bookList.add ( "水浒传");
bookList.add( "三国志");
bookList.add ( index:o,element:"镜花缘");
System.out.println (bookList) ;
}}