第04章(面向对象——上)

  1 /*****************
  2 ***第四章面向对象(上)
  3 *******知识点:
  4 **************1.类和对象
  5 ******************1.1 关键字
  6 ******************1.2 定义
  7 ******************1.3 使用
  8 **************2.方法和属性
  9 ******************2.1 关键字
 10 ******************2.2 方法重载和重写
 11 ******************2.3 方法参数传递
 12 ******************2.4 成员属性和局部属性
 13 **************3.隐藏和封装
 14 ******************3.1 关键字
 15 ******************3.2 概念定义
 16 ******************3.3 访问权限
 17 ******************3.4 package和import
 18 **************4.构造器
 19 ******************4.1 关键字
 20 ******************4.2 概念
 21 ******************4.3 定义
 22 ******************4.4 使用
 23 **************5.继承
 24 ******************5.1 关键字
 25 ******************5.2 定义
 26 ******************5.3 使用
 27 */
 28 import java.util.*;
 29 public class test4{
 30     public static void main(String[] args){
 31         showDemo("1.类和对象");
 32         demoClassAndObject();
 33         
 34         showDemo("2.方法和属性");
 35         demoMethodAndField();
 36         
 37         showDemo("3.隐藏和封装");
 38         demoHideAndPackage();
 39         
 40         showDemo("4.构造器");
 41         demoConstructor();
 42         
 43         showDemo("5.继承和多态");
 44         demoExtend();
 45     }
 46     
 47     /**1.类和对象**/
 48     public static void demoClassAndObject(){
 49         //1.1关键字
 50         String[] s_Arr = {"class","new"};
 51         System.out.println("类和对象的关键字有:" + s_Arr[0] + "," + s_Arr[1]);
 52         //1.2定义
 53         String s_demo_class = "public class Person{ \r\n " 
 54                                +" private int id; \r\n "
 55                                +" public void setId(int id) { \r\n" 
 56                                +"      this.id = id;\r\n"
 57                                +"   }\r\n"
 58                                +"\r\n}";
 59         System.out.println("类定义:\r\n" + s_demo_class);//使用class关键字定义类
 60         
 61         String s_demo_Object = "  Pernon p = new Person();";
 62         System.out.println("对象定义:\r\n" + s_demo_Object);//使用new关键字定义该类对象
 63         
 64         //1.3使用
 65         //类是对象的模板。它定义了某类对象特有的属性和方法。
 66         //对象是类的实例。它根据类定义的属性有属于自己的成员数据,并且可以通过相关的方法获取到该数据
 67         String s_demo_UseFlow = "1.定义类的方法和属性   2.定义该类的对象  3.使用该对象调用相关操作方法";
 68         System.out.println("使用步骤:" + s_demo_UseFlow);
 69         
 70     }
 71     
 72     /**2.方法和属性**/
 73     public static void demoMethodAndField(){
 74         //2.1 概念
 75         //方法 可以为类方法也可以为对象方法   类方法需用static修饰(后面再详细讲述两者的访问差异)
 76         //属性 可以为类属性也可以为对象属性      类属性需用static修饰(后面再详细讲述两者的访问差异)
 77         
 78         //2.2 方法重载和重写
 79         //方法重载是以统一的方式处理不同类型数据的一种手段。
 80         //多个同名函数同时存在,具有不同的参数个数/类型 或者 不同类型的返回值  
 81         System.out.println("Max方法重载1:" + Max(1) + ",    Max方法重载2:" + Max(1,3) + ",    Max方法重载3:" + Max(-1.5,-3.5));
 82         
 83         //方法重写
 84         //方法重写以不同于父类的处理方式去处理子类特有的方式的一种手段
 85         //比如B类继承A类,A类中有个play()方法。B类可以根据自己的特性重写实现play()方法
 86         //此特性是实现多态的核心
 87         
 88         //2.3 方法参数传递
 89         //两种方式
 90         //第一种传递基本数据(即参数是基本数据类型  四类八种)
 91         //第二种传递引用数据(即参数为引用类型  如数组、对象等)        
 92         //不管哪一种方式都不能改变参数本身的数据(使用static关键字修饰的参数和方法除外 因为staitc是属于类的)
 93         
 94         //2.4 成员属性和局部属性
 95         //成员属性  针对对象本身(定义在类里面,static修饰除外。因为static修饰是属于类的成员变量,针对类本身)
 96         //局部属性  针对调用者本身或者创建着本身(定义在方法里面)
 97         //两者作用域也不一样   前者是于对象共存亡   后者是于方法共存亡
 98     }
 99     
100     /**3.隐藏和封装**/
101     public static void demoHideAndPackage(){
102         //3.1 关键字
103         String[] s_demoHideAndPackage = {"public","protected","default","private"};
104         System.out.println("隐藏和封装的关键字有:" + s_demoHideAndPackage[0] + "," 
105                             + s_demoHideAndPackage[1] + ","
106                             + s_demoHideAndPackage[2] + ","
107                             + s_demoHideAndPackage[3]);
108         
109         //3.2 概念定义
110         //隐藏   将相关的信息封闭起来不对外公开    
111         //封装   将对象的状态信息隐藏在对象内容中,不允许外部程序直接访问对象的内部信息,
112         //       但可以通过该类所提供的方法来实现对内部信息的操作和访问
113         //是面向对象编程的核心之一
114         
115         //3.3 访问权限
116         //public      全局 - 子类  - 同包中 - 同类中
117         System.out.println("public访问权限:全局 - 子类  - 同包中 - 同类中");
118         
119         //protetcted  子类  - 同包中 - 同类中
120         System.out.println("protetcted访问权限:子类  - 同包中 - 同类中");
121         
122         //default(如果不加任何关键字修饰的話,java默认)      同包中 - 同类中
123         System.out.println("default访问权限:同包中 - 同类中");
124         
125         //private      同类中
126         System.out.println("private访问权限:同类中");
127         //建议:一般情况下 方法使用public  属性使用private
128         
129         //3.4 package和import
130         //package   生成包
131         System.out.println("package生成包语法: package + 包名(需注意全名且该行在页首)");
132         
133         //import 导入包
134         System.out.println("import生成包语法: import + 包名(需注意全名且该行在页首)");
135     }
136     
137     /**4.构造器**/
138     public static void demoConstructor(){
139         //4.1 关键字
140         String[] s_demoConstructor = {"this","super"};
141         System.out.println("构造器的关键字有:" + s_demoConstructor[0]+ ","  + s_demoConstructor[1]);
142         //4.2 概念
143         //构造器  一个特殊的方法  用于创建对象
144         //this关键字   引用当前对象
145         //super关键字   引用基类对象
146         //4.3 定义
147         String s_demoConstructor_str = "权限符 类名() {\r\n"
148                                         +"      ...\r\n"
149                                         +"} //其中权限符通常为public";
150         System.out.println("构造器定义:\r\n" + s_demoConstructor_str);
151         
152         //4.4 使用
153         //注意:
154         //    假如一个类没有设置字定义构造器,那么编译器会默认一个无参构造器
155         //      假如定义了一个带参数的构造器没无参构造器时,那么将无法使用无参构造器
156         //      支持重载
157         //      子类构造器在调用时会先调用基类的构造器    
158         
159         System.out.println("构造器的使用:Person p = new Person();");
160     }
161     
162     /**5.继承**/
163     public static void demoExtend(){
164         //5.1 关键字
165         String[] s_demoExtendAndMultimodal = {"extends","implements"};
166         System.out.println("继承和多态关键字有:" + s_demoExtendAndMultimodal[0]+ ","  + s_demoExtendAndMultimodal[1]);
167         
168         //5.2 定义
169         //extends 继承自基类(需注意java中只能继承一个基类)
170         //implements 实现某些接口(需注意java中可以实现多个接口)
171         // class B extends class A
172         System.out.println("继承基类语法定义:子类名(可以是接口) extends 基类名");
173         // class B implements interface C
174         System.out.println("实现接口语法定义:子类名(可以是接口) implements 接口1,接口2.....");
175         
176         //5.3 使用
177         //使用步骤:1.定义基类  2.定义子类继承父类
178     }
179     
180     /*
181     *演示重载方法1
182     */
183     public static int Max(int i){
184         return i > 0 ? i : 0;
185     }
186     
187     /*
188     *演示重载方法2
189     */
190     public static int Max(int i1,int i2){
191         return i1 > i2 ? i1 : i2;
192     }
193     
194     /*
195     *演示重载方法3
196     */
197     public static double Max(double d1,double d2){
198         return d1 > d2 ? d1 : d2;
199     }
200     
201     /*
202     *    抽取打印演示函数  用于打印演示功能提示
203     */    
204     public static void showDemo(String demoStr){
205         System.out.println("演示:" + demoStr);
206     }
207 }
原文地址:https://www.cnblogs.com/ciade/p/4757535.html